Changeset 5771


Ignore:
Timestamp:
11/05/14 10:33:20 (10 years ago)
Author:
emanuel.dima@uni-tuebingen.de
Message:

upgraded to new SRUClient with new spec and legacy support + fast concurrent scan + ui improvements; WIP

Location:
SRUAggregator/trunk
Files:
2 added
3 deleted
20 edited
3 moved

Legend:

Unmodified
Added
Removed
  • SRUAggregator/trunk/build.sh

    r5758 r5771  
    1515JSDIR=src/main/webapp/js
    1616for f in $JSDIR/*.jsx; do
    17         cp $f $JSDIR/`basename $f .jsx`.js;
     17        cp -v $f $JSDIR/`basename $f .jsx`.js;
    1818done
    1919node_modules/react-tools/bin/jsx --no-cache-dir $JSDIR $JSDIR
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java

    r5758 r5771  
    33import eu.clarin.sru.fcs.aggregator.search.Search;
    44import eu.clarin.sru.fcs.aggregator.cache.ScanCrawlTask;
    5 import eu.clarin.sru.fcs.aggregator.cache.ScanCachePersistence;
    6 import eu.clarin.sru.fcs.aggregator.cache.SimpleInMemScanCache;
     5import eu.clarin.sru.fcs.aggregator.cache.Corpora;
    76import eu.clarin.sru.client.SRUThreadedClient;
    87import eu.clarin.sru.client.SRUVersion;
    98import eu.clarin.sru.client.fcs.ClarinFCSClientBuilder;
    109import eu.clarin.sru.fcs.aggregator.cache.EndpointUrlFilter;
    11 import eu.clarin.sru.fcs.aggregator.cache.ScanCache;
    1210import eu.clarin.sru.fcs.aggregator.registry.Corpus;
    1311import java.io.File;
     
    2220import java.util.concurrent.ScheduledExecutorService;
    2321import java.util.concurrent.atomic.AtomicReference;
    24 import javax.naming.NamingException;
    2522import javax.servlet.ServletContextEvent;
    2623import javax.servlet.ServletContextListener;
    2724import opennlp.tools.tokenize.TokenizerModel;
     25import org.codehaus.jackson.map.ObjectMapper;
    2826import org.slf4j.LoggerFactory;
    2927
     
    7775 * @author Yana Panchenko
    7876 * @author edima
     77 *
     78 * TODO: result panes with animation and more info
     79 *
     80 * TODO: highlighted/kwic hits: toggle for now
     81 *
     82 * TODO: show multiple hits on the same result in multiple rows, linked visually
     83 *
     84 * TODO: new UI element to specify layer we search in
     85 *
     86 * TODO: good UI for tree view corpus selection, with instant search form
     87 *
     88 * TODO: zoom into the results from a corpus, allow functionality only for the
     89 * view
     90 *
     91 * TODO: websockets, selfhosting
     92 *
     93 * TODO: add statistics menu option w/ page
     94 *
     95 * TODO: atomic replace of cached corpora (file)
     96 *
     97 * TODO: test json deserialization
     98 *
    7999 */
    80100public class Aggregator implements ServletContextListener {
     
    82102        private static final org.slf4j.Logger log = LoggerFactory.getLogger(Aggregator.class);
    83103
    84         public static final int WAITING_TIME_FOR_SHUTDOWN_MS = 10000;
     104        public static final int WAITING_TIME_FOR_SHUTDOWN_MS = 2000;
    85105        public static final String DE_TOK_MODEL = "/tokenizer/de-tuebadz-8.0-token.bin";
    86106        private static final String DEFAULT_DATA_LOCATION = "/data";
    87         private static final String SCAN_DIR_NAME = "scan";
    88107
    89108        private static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    90109        private static Aggregator instance;
    91110
    92         private AtomicReference<ScanCache> scanCacheAtom = new AtomicReference<ScanCache>(new SimpleInMemScanCache());
     111        private AtomicReference<Corpora> scanCacheAtom = new AtomicReference<Corpora>(new Corpora());
    93112        private TokenizerModel model;
    94113        private SRUThreadedClient sruClient = null;
     
    100119        }
    101120
    102         public ScanCache getScanCache() {
     121        public Corpora getCorpora() {
    103122                return scanCacheAtom.get();
    104123        }
     
    122141                                        .buildThreadedClient();
    123142
    124                         String scanDir = getScanDirectory(params.dataLocationPropertyName, params.aggregatorDirName);
    125                         ScanCachePersistence scanCachePersistence = new ScanCachePersistence(scanDir);
     143                        File corporaCacheFile = new File(params.aggregatorFilePath);
    126144                        try {
    127 //                              scanCacheAtom.set(scanCachePersistence.read());
    128                                 log.info("ScanCache read from file; number of root corpora: " + scanCacheAtom.get().getRootCorpora().size());
     145                                Corpora corpora = new ObjectMapper().readValue(corporaCacheFile, Corpora.class);
     146                                scanCacheAtom.set(corpora);
     147                                log.info("corpus list read from file; number of root corpora: " + scanCacheAtom.get().getCorpora().size());
    129148                        } catch (Exception e) {
    130                                 log.error("Error while reading ScanCache:", e);
     149                                log.error("Error while reading cached corpora:", e);
    131150                        }
    132151
    133                         EndpointUrlFilter filter = new EndpointUrlFilter();
    134                         filter.deny("leipzig", "mpi.", "phonetik.uni-muenchen");
    135                         scheduler.scheduleAtFixedRate(
    136                                         new ScanCrawlTask(sruClient, params.cacheMaxDepth, filter, scanCachePersistence, scanCacheAtom),
    137                                         0, params.cacheUpdateInterval, params.cacheUpdateIntervalUnit);
    138 
    139152                        model = setUpTokenizers();
     153
     154                        EndpointUrlFilter filter = new EndpointUrlFilter();//.deny("leipzig"); // ~5k corpora
     155                        ScanCrawlTask task = new ScanCrawlTask(sruClient, params.centerRegistryUrl,
     156                                        params.cacheMaxDepth, filter, scanCacheAtom, corporaCacheFile);
     157                        scheduler.scheduleAtFixedRate(task, 0, params.cacheUpdateInterval, params.cacheUpdateIntervalUnit);
     158
    140159                        log.info("Aggregator initialization finished.");
    141160                } catch (Exception ex) {
     
    183202        }
    184203
    185         private static String getScanDirectory(String dataLocationPropertyName, String aggregatorDirName) throws NamingException {
    186                 // see if data location is set in properties
    187                 String dataLocation = System.getProperty(dataLocationPropertyName);
    188                 if (dataLocation == null || !(new File(dataLocation, aggregatorDirName).exists())) {
    189                         dataLocation = DEFAULT_DATA_LOCATION;
    190                         if (!(new File(dataLocation, aggregatorDirName).exists())) {
    191                                 dataLocation = System.getProperty("user.home");
    192                         }
    193                         if ((new File(dataLocation, aggregatorDirName).exists())) {
    194                                 log.info(dataLocationPropertyName + " property is not defined, "
    195                                                 + "setting to default: " + dataLocation);
    196                         } else {
    197                                 log.info(dataLocationPropertyName + " property is not defined, "
    198                                                 + "default location does not exist: " + dataLocation);
    199                                 throw new RuntimeException("Data location not found");
    200                         }
    201                 }
    202 
    203                 File aggregatorDir = new File(dataLocation, aggregatorDirName);
    204                 if (!aggregatorDir.exists()) {
    205                         log.error("Aggregator directory does not exist: "
    206                                         + aggregatorDir.getAbsolutePath());
    207                 }
    208                 File scanDir = new File(aggregatorDir, SCAN_DIR_NAME);
    209                 if (!scanDir.exists()) {
    210                         if (!scanDir.mkdir()) {
    211                                 log.error("Scan directory does not exist and cannot be created: "
    212                                                 + aggregatorDir.getAbsolutePath());
    213                         }
    214                 }
    215                 String scanPath = scanDir.getAbsolutePath();
    216                 log.info("Scan data location: " + scanPath);
    217                 return scanPath;
    218         }
    219 
    220204        private static void shutdownAndAwaitTermination(SRUThreadedClient sruClient, ExecutorService scheduler) {
    221205                try {
     
    236220                TokenizerModel model = null;
    237221                try {
    238                         InputStream tokenizerModelDeAsIS = Thread.currentThread().getContextClassLoader().getResourceAsStream(DE_TOK_MODEL);
    239                         model = new TokenizerModel(tokenizerModelDeAsIS);
    240                         tokenizerModelDeAsIS.close();
     222                        try (InputStream tokenizerModelDeAsIS = Thread.currentThread().getContextClassLoader().getResourceAsStream(DE_TOK_MODEL)) {
     223                                model = new TokenizerModel(tokenizerModelDeAsIS);
     224                        }
    241225                } catch (IOException ex) {
    242226                        log.error("Failed to load tokenizer model", ex);
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Params.java

    r5758 r5771  
    44import javax.naming.InitialContext;
    55import javax.naming.NamingException;
     6import org.slf4j.LoggerFactory;
    67
    78/**
     
    1011 */
    1112public class Params {
     13
     14        private static final org.slf4j.Logger log = LoggerFactory.getLogger(Params.class);
     15
     16        public final String centerRegistryUrl;
    1217        public final int cacheMaxDepth;
    1318        public final TimeUnit cacheUpdateIntervalUnit;
    1419        public final int cacheUpdateInterval;
    15         public final String dataLocationPropertyName;
    16         public final String aggregatorDirName;
    17 
     20        public final String aggregatorFilePath;
    1821
    1922        public Params() throws NamingException {
    2023                InitialContext context = new InitialContext();
     24
     25                centerRegistryUrl = (String) context.lookup("java:comp/env/center-registry-url");
    2126
    2227                cacheMaxDepth = (Integer) context.lookup("java:comp/env/scan-max-depth");
     
    2732                cacheUpdateInterval = (Integer) context.lookup("java:comp/env/update-interval");
    2833
    29                 dataLocationPropertyName = (String) context.lookup("java:comp/env/data-location-property");
     34                aggregatorFilePath = (String) context.lookup("java:comp/env/aggregator-file-path");
    3035
    31                 aggregatorDirName = (String) context.lookup("java:comp/env/aggregator-folder");
     36                log.info("centerRegistryUrl = {}", centerRegistryUrl);
     37                log.info("cacheMaxDepth = {}", cacheMaxDepth);
     38                log.info("cacheUpdateInterval = {} {}", cacheUpdateInterval, cacheUpdateIntervalUnit);
     39                log.info("aggregatorFilePath = {}", aggregatorFilePath);
    3240        }
    33 
    3441}
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/cache/Corpora.java

    r5758 r5771  
    66import java.util.HashMap;
    77import java.util.HashSet;
    8 import java.util.LinkedHashMap;
    98import java.util.LinkedHashSet;
    109import java.util.List;
    1110import java.util.Map;
    1211import java.util.Set;
    13 import java.util.logging.Logger;
     12import org.slf4j.LoggerFactory;
    1413
    1514/**
     
    2019 * @author edima
    2120 */
    22 public class SimpleInMemScanCache implements ScanCache {
     21public class Corpora {
    2322
    24         private Map<String, List<Corpus>> enpUrlToRootCorpora = new LinkedHashMap<String, List<Corpus>>(30);
    25         private Map<String, List<Corpus>> corpusToChildren = new HashMap<String, List<Corpus>>();
    26         private Map<String, Corpus> handleToCorpus = new HashMap<String, Corpus>();
     23        private static final org.slf4j.Logger log = LoggerFactory.getLogger(Corpora.class);
     24
    2725        private Map<String, Set<Corpus>> langToRootCorpora = new HashMap<String, Set<Corpus>>();
    2826        private Map<String, Set<Corpus>> langToTopUniqueCorpora = new HashMap<String, Set<Corpus>>();
    2927        private List<Institution> institutions = new ArrayList<Institution>();
     28        private List<Corpus> corpora = new ArrayList<Corpus>();
    3029
    31         private static final Logger LOGGER = Logger.getLogger(SimpleInMemScanCache.class.getName());
    32 
    33         @Override
    3430        public List<Institution> getInstitutions() {
    3531                return institutions;
    3632        }
    3733
    38         @Override
    39         public List<Corpus> getRootCorporaOfEndpoint(String enpointUrl) {
    40                 List<Corpus> roots = new ArrayList<Corpus>();
    41                 if (enpUrlToRootCorpora.containsKey(enpointUrl)) {
    42                         roots.addAll(enpUrlToRootCorpora.get(enpointUrl));
    43                 }
    44                 return roots;
     34        public List<Corpus> getCorpora() {
     35                return corpora;
    4536        }
    4637
    47         @Override
    4838        public void addInstitution(Institution institution) {
    4939                institutions.add(institution);
    5040        }
    5141
    52         @Override
    53         public synchronized Corpus getCorpus(String handle) {
    54                 return handleToCorpus.get(handle);
     42        public synchronized boolean addRootCorpus(final Corpus c) {
     43                if (findByHandle(c.getHandle()) != null) {
     44                        return false;
     45                }
     46                corpora.add(c);
     47                for (String lang : c.getLanguages()) {
     48                        if (!langToRootCorpora.containsKey(lang)) {
     49                                langToRootCorpora.put(lang, new HashSet<Corpus>());
     50                        }
     51                        langToRootCorpora.get(lang).add(c);
     52                }
     53                return true;
    5554        }
    5655
    57         @Override
    58         public synchronized boolean addCorpus(Corpus c) {
    59                 return addCorpus(c, null);
    60         }
    61 
    62         @Override
    63         public synchronized boolean addCorpus(Corpus c, Corpus parentCorpus) {
    64                 if (handleToCorpus.containsKey(c.getHandle())) {
    65                         // cyclic reference
     56        public synchronized boolean addSubCorpus(Corpus c, Corpus parentCorpus) {
     57                if (findByHandle(c.getHandle()) != null) {
    6658                        return false;
    6759                }
    6860
    69                 handleToCorpus.put(c.getHandle(), c);
    70 
    7161                if (parentCorpus == null) { //i.e it's a root corpus
    72                         // index root corpora as for their languages
    73                         for (String lang : c.getLanguages()) {
    74                                 if (!langToRootCorpora.containsKey(lang)) {
    75                                         langToRootCorpora.put(lang, new HashSet<Corpus>());
    76                                 }
    77                                 langToRootCorpora.get(lang).add(c);
    78                         }
    79                         // index root corpora as for their endpint url
    80                         if (!enpUrlToRootCorpora.containsKey(c.getEndpointUrl())) {
    81                                 enpUrlToRootCorpora.put(c.getEndpointUrl(), new ArrayList<Corpus>());
    82                         }
    83                         enpUrlToRootCorpora.get(c.getEndpointUrl()).add(c);
     62                        addRootCorpus(c);
    8463                } else {
    85                         if (!corpusToChildren.containsKey(parentCorpus.getHandle())) {
    86                                 corpusToChildren.put(parentCorpus.getHandle(), new ArrayList<Corpus>());
    87                         }
    88                         corpusToChildren.get(parentCorpus.getHandle()).add(c);
     64                        parentCorpus.addCorpus(c);
    8965                }
    9066
     
    9268                if (c.getLanguages().size() == 1
    9369                                && (parentCorpus == null || parentCorpus.getLanguages().size() > 0)) {
    94                         String lang = getElementOfStringUnitset(c.getLanguages());
     70                        String lang = c.getLanguages().iterator().next();
    9571                        if (!langToTopUniqueCorpora.containsKey(lang)) {
    9672                                langToTopUniqueCorpora.put(lang, new LinkedHashSet<Corpus>());
     
    10177        }
    10278
    103         @Override
    104         public String toString() {
    105                 return "cache{\n" + "institutions=" + institutions + "\n"
    106                                 + "enpUrlToRootCorpora=" + enpUrlToRootCorpora
    107                                 + "\n corpusToChildren=" + corpusToChildren
    108                                 + "\n langToTopUniqueCorpora=" + langToTopUniqueCorpora + "\n}";
    109         }
    110 
    111         @Override
    112         public boolean isEmpty() {
    113                 return enpUrlToRootCorpora.isEmpty();
    114         }
    115 
    116         @Override
    117         public synchronized List<Corpus> getRootCorpora() {
    118                 List<Corpus> rootCorpora = new ArrayList<Corpus>(enpUrlToRootCorpora.size());
    119                 for (List<Corpus> corpora : this.enpUrlToRootCorpora.values()) {
    120                         rootCorpora.addAll(corpora);
    121                 }
    122                 return rootCorpora;
    123         }
    124 
    125         @Override
    12679        public Set<String> getLanguages() {
    12780                Set<String> languages = new HashSet<String>(this.langToRootCorpora.size());
     
    13083        }
    13184
    132         @Override
    133         public List<Corpus> getChildren(Corpus corpus) {
    134                 List<Corpus> corpora = this.corpusToChildren.get(corpus.getHandle());
    135                 if (corpora == null) {
    136                         return (new ArrayList<Corpus>());
    137                 } else {
    138                         List<Corpus> corporaCopy = new ArrayList<Corpus>(corpora);
    139                         return corporaCopy;
     85        public List<Corpus> getRootCorporaForLang(String lang) {
     86                List<Corpus> ret = new ArrayList<Corpus>();
     87                for (Corpus c : corpora) {
     88                        if (c.getLanguages().contains(lang)) {
     89                                ret.add(c);
     90                        }
    14091                }
     92                return ret;
    14193        }
    14294
    143         @Override
    144         public Map<String, Set<Corpus>> getRootCorporaForLang() {
    145                 return langToRootCorpora;
    146         }
    147 
    148         @Override
    149         public List<Corpus> getRootCorporaForLang(String lang) {
    150                 List<Corpus> rootCorpora = new ArrayList<Corpus>(enpUrlToRootCorpora.size());
    151                 for (List<Corpus> corpora : this.enpUrlToRootCorpora.values()) {
    152                         for (Corpus corpus : corpora) {
    153                                 if (corpus.getLanguages().contains(lang)) {
    154                                         rootCorpora.add(corpus);
    155                                 }
    156                         }
    157                 }
    158                 return rootCorpora;
    159         }
    160 
    161         @Override
    162         public Map<String, Set<Corpus>> getTopUniqueLangToCorpora() {
    163                 return this.langToTopUniqueCorpora;
    164         }
    165 
    166         @Override
    16795        public List<Corpus> getTopUniqueLanguageCorpora(String lang) {
    168                 ArrayList<Corpus> corpora = new ArrayList<Corpus>(langToTopUniqueCorpora.get(lang).size());
     96                ArrayList<Corpus> corpora = new ArrayList<Corpus>();
    16997                corpora.addAll(langToTopUniqueCorpora.get(lang));
    17098                return corpora;
    17199        }
    172100
    173         private String getElementOfStringUnitset(Set<String> stringUnitSet) {
    174                 return stringUnitSet.iterator().next();
     101        @Override
     102        public String toString() {
     103                return "corpora{\n" + "institutions=" + institutions + "\n"
     104                                + "\n corpora=" + corpora + "\n}";
     105        }
     106
     107        public List<Corpus> findByEndpoint(final String endpointUrl) {
     108                final List<Corpus> found = new ArrayList<Corpus>();
     109                visit(corpora, new CallCorpus() {
     110                        @Override
     111                        public void call(Corpus c) {
     112                                if (c.getEndpointUrl().equals(endpointUrl)) {
     113                                        found.add(c);
     114                                }
     115                        }
     116                });
     117                return found;
     118        }
     119
     120        public Corpus findByHandle(final String handle) {
     121                final List<Corpus> found = new ArrayList<Corpus>();
     122                visit(corpora, new CallCorpus() {
     123                        @Override
     124                        public void call(Corpus c) {
     125                                if (c.getHandle() != null && c.getHandle().equals(handle)) {
     126                                        found.add(c);
     127                                }
     128                        }
     129                });
     130                return found.isEmpty() ? null : found.get(0);
     131        }
     132
     133        public static interface CallCorpus {
     134                void call(Corpus c);
     135        }
     136
     137        private static void visit(List<Corpus> corpora, CallCorpus clb) {
     138                for (Corpus c : corpora) {
     139                        clb.call(c);
     140                        visit(c.getSubCorpora(), clb);
     141                }
    175142        }
    176143}
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/cache/ScanCrawlTask.java

    r5758 r5771  
    22
    33import eu.clarin.sru.client.SRUThreadedClient;
     4import eu.clarin.sru.fcs.aggregator.registry.CenterRegistry;
    45import eu.clarin.sru.fcs.aggregator.registry.CenterRegistryLive;
     6import java.io.File;
     7import java.io.IOException;
    58import java.util.concurrent.atomic.AtomicReference;
     9import org.codehaus.jackson.map.ObjectMapper;
    610import org.slf4j.LoggerFactory;
    711
    812/**
    9  * A task for crawling endpoint scan operation responses of FCS specification.
    10  * If successful, saves found endpoints and resources descriptions into a new
    11  * ScanCache and updates the web application contexts with this new cache, as
    12  * well as rewrites the previously scanned data saved on the disk.
    13  *
    1413 * @author yanapanchenko
    1514 * @author edima
    1615 */
    1716public class ScanCrawlTask implements Runnable {
    18        
     17
    1918        private static final org.slf4j.Logger log = LoggerFactory.getLogger(ScanCrawlTask.class);
    20        
     19
    2120        private SRUThreadedClient sruClient;
    22         private ScanCachePersistence scanCachePersistence;
    23         private AtomicReference<ScanCache> scanCacheAtom;
    2421        private int cacheMaxDepth;
    2522        private EndpointFilter filter;
    26        
    27         public ScanCrawlTask(SRUThreadedClient sruClient, int cacheMaxDepth, EndpointFilter filter,
    28                         ScanCachePersistence scanCachePersistence, AtomicReference<ScanCache> scanCacheAtom) {
     23        private AtomicReference<Corpora> corporaAtom;
     24        private File cachedCorpora;
     25        private String centerRegistryUrl;
     26
     27        public ScanCrawlTask(SRUThreadedClient sruClient, String centerRegistryUrl,
     28                        int cacheMaxDepth, EndpointFilter filter,
     29                        AtomicReference<Corpora> corporaAtom, File cachedCorpora) {
    2930                this.sruClient = sruClient;
     31                this.centerRegistryUrl = centerRegistryUrl;
    3032                this.cacheMaxDepth = cacheMaxDepth;
    3133                this.filter = filter;
    32                 this.scanCachePersistence = scanCachePersistence;
    33                 this.scanCacheAtom = scanCacheAtom;
     34                this.corporaAtom = corporaAtom;
     35                this.cachedCorpora = cachedCorpora;
    3436        }
    35        
     37
    3638        @Override
    3739        public void run() {
    3840                try {
    39                         log.info("STARTING CACHING CORPORA SCAN");
    4041                        long time0 = System.currentTimeMillis();
    41                        
    42                         ScanCrawler scanCrawler = new ScanCrawler(new CenterRegistryLive(), sruClient, filter, cacheMaxDepth);
    43                         ScanCache cache = scanCrawler.crawl();
    44                        
    45                         log.info("New Cache, number of root corpora: " + cache.getRootCorpora().size());
    46                         scanCachePersistence.write(cache);
    47                         scanCacheAtom.set(cache);
     42
     43                        log.info("ScanCrawlTask: Initiating crawl");
     44                        CenterRegistry centerRegistry = new CenterRegistryLive(centerRegistryUrl);
     45                        ScanCrawler scanCrawler = new ScanCrawler(centerRegistry, sruClient, filter, cacheMaxDepth);
     46
     47                        log.info("ScanCrawlTask: Starting crawl");
     48                        Corpora corpora = scanCrawler.crawl();
     49
     50                        corporaAtom.set(corpora);
    4851                        long time = System.currentTimeMillis() - time0;
    49                        
    50                         log.info("FINISHED CACHING CORPORA SCAN ({}s)", time / 1000.);
    51                 } catch (Exception xc) {
    52                         log.error("!!! Scan Crawler task exception", xc);
     52
     53                        log.info("ScanCrawlTask: crawl done in {}s, number of root corpora: {}",
     54                                        time / 1000., corpora.getCorpora().size());
     55
     56                        ObjectMapper mapper = new ObjectMapper();
     57                        mapper.writerWithDefaultPrettyPrinter().writeValue(cachedCorpora, corpora);
     58                        log.info("ScanCrawlTask: wrote to disk, finished");
     59                } catch (IOException xc) {
     60                        log.error("!!! Scan Crawler task IO exception", xc);
     61                } catch (Throwable xc) {
     62                        log.error("!!! Scan Crawler task throwable exception", xc);
     63                        throw xc;
    5364                }
    5465        }
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/cache/ScanCrawler.java

    r5758 r5771  
    11package eu.clarin.sru.fcs.aggregator.cache;
    22
     3import eu.clarin.sru.fcs.aggregator.util.CounterLatch;
    34import eu.clarin.sru.client.SRUCallback;
    45import eu.clarin.sru.client.SRUClientException;
     
    78import eu.clarin.sru.client.SRUTerm;
    89import eu.clarin.sru.client.SRUThreadedClient;
    9 import eu.clarin.sru.fcs.aggregator.registry.CenterRegistryI;
     10import eu.clarin.sru.fcs.aggregator.registry.CenterRegistry;
    1011import eu.clarin.sru.fcs.aggregator.registry.Corpus;
    1112import eu.clarin.sru.fcs.aggregator.registry.Endpoint;
     
    2324 *
    2425 * @author yanapanchenko
     26 * @author edima
    2527 */
    2628public class ScanCrawler {
     
    2830        private static final org.slf4j.Logger log = LoggerFactory.getLogger(ScanCrawler.class);
    2931
    30         private final CenterRegistryI cr;
     32        private final CenterRegistry centerRegistry;
    3133        private final SRUThreadedClient sruScanClient;
    3234        private final int maxDepth;
    3335        private final EndpointFilter filter;
    34         private CounterLatch latch = new CounterLatch();
    35 
    36         public ScanCrawler(CenterRegistryI centerRegistry, SRUThreadedClient sruScanClient, EndpointFilter filter, int maxDepth) {
    37                 cr = centerRegistry;
     36        private final CounterLatch latch;
     37
     38        public ScanCrawler(CenterRegistry centerRegistry, SRUThreadedClient sruScanClient, EndpointFilter filter, int maxDepth) {
     39                this.centerRegistry = centerRegistry;
    3840                this.sruScanClient = sruScanClient;
    3941                this.maxDepth = maxDepth;
    4042                this.filter = filter;
    41         }
    42 
    43         public ScanCache crawl() {
    44                 SimpleInMemScanCache cache = new SimpleInMemScanCache();
    45                 for (Institution institution : cr.getCQLInstitutions()) {
     43                this.latch = new CounterLatch();
     44        }
     45
     46        public Corpora crawl() {
     47                Corpora cache = new Corpora();
     48                for (Institution institution : centerRegistry.getCQLInstitutions()) {
    4649                        cache.addInstitution(institution);
    4750                        Iterable<Endpoint> endpoints = institution.getEndpoints();
     
    5558
    5659                try {
     60                        log.info("awaiting");
    5761                        latch.await();
    5862                } catch (InterruptedException e) {
     
    6064                }
    6165
     66                log.info("done crawling");
    6267                return cache;
    6368        }
    6469
    6570        private void addCorpora(final String endpointUrl, final Institution institution,
    66                         final Corpus parentCorpus, final ScanCache cache, final int depth) {
     71                        final Corpus parentCorpus, final Corpora corpora, final int depth) {
    6772                if (depth > maxDepth) {
    6873                        return;
     
    96101                                                        for (SRUTerm term : response.getTerms()) {
    97102                                                                Corpus c = createCorpus(institution, endpointUrl, term);
    98                                                                 checkedAdd(cache, parentCorpus, c, depth);
     103                                                                checkedAdd(corpora, parentCorpus, c, depth);
    99104                                                        }
    100105                                                } else if (parentCorpus == null) {
    101106                                                        // create default root corpus
    102107                                                        Corpus c = new Corpus(institution, endpointUrl);
    103                                                         checkedAdd(cache, parentCorpus, c, depth);
     108                                                        checkedAdd(corpora, parentCorpus, c, depth);
    104109                                                }
    105110
    106111                                                log.info("{} Finished scan: {}", latch.get(), endpointUrl);
     112                                        } catch (Exception xc) {
     113                                                log.error("{} Exception in callback {}", latch.get(), endpointUrl);
     114                                                log.error("--> ", xc);
    107115                                        } finally {
    108116                                                latch.decrement();
     
    113121                                public void onError(SRUScanRequest request, SRUClientException error) {
    114122                                        latch.decrement();
    115                                         log.error("{} Error while scanning {}: {}", latch.get(), endpointUrl, error);
     123                                        log.error("{} Error while scanning {}: {} : {}", latch.get(), endpointUrl, error, error.getCause());
    116124                                }
    117125                        });
     
    122130        }
    123131
    124         private void checkedAdd(ScanCache cache, Corpus parentCorpus, Corpus c, int depth) {
    125                 if (cache.addCorpus(c, parentCorpus)) {
    126                         addCorpora(c.getEndpointUrl(), c.getInstitution(), c, cache, depth + 1);
     132        private void checkedAdd(Corpora corpora, Corpus parentCorpus, Corpus c, int depth) {
     133                if (corpora.addSubCorpus(c, parentCorpus)) {
     134                        addCorpora(c.getEndpointUrl(), c.getInstitution(), c, corpora, depth + 1);
    127135                } else {
    128136                        // log.warn("Cyclic reference in corpus " + c.getHandle() + " of endpoint " + c.getEndpointUrl());
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/registry/CenterRegistry.java

    r5758 r5771  
    1010 * @author Yana Panchenko
    1111 */
    12 public interface CenterRegistryI {
     12public interface CenterRegistry {
    1313
    1414    public boolean hasCQLInstitutionsLoaded();
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/registry/CenterRegistryForTesting.java

    r5718 r5771  
    1515 * @author Yana Panchenko
    1616 */
    17 public class CenterRegistryForTesting implements CenterRegistryI {
     17public class CenterRegistryForTesting implements CenterRegistry {
    1818
    1919    private static final Logger logger = Logger.getLogger(CenterRegistryForTesting.class.getName());
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/registry/CenterRegistryLive.java

    r5718 r5771  
    1313import java.util.logging.Level;
    1414import java.util.logging.Logger;
    15 import javax.naming.InitialContext;
    16 import javax.naming.NamingException;
    1715
    1816/**
     
    2018 *
    2119 * @author Yana Panchenko
     20 * @author edima
    2221 */
    23 public class CenterRegistryLive implements CenterRegistryI {
     22public class CenterRegistryLive implements CenterRegistry {
    2423
    2524        private static final Logger LOGGER = Logger.getLogger(CenterRegistryLive.class.getName());
    26         //private static final String CENTER_REGISTRY_URL = "http://130.183.206.32/restxml/";
    27         private String centerRegistryUrl; //defined in web.xml
    28         //https://centerregistry-clarin.esc.rzg.mpg.de/restxml/
     25        private String centerRegistryUrl;
    2926        private boolean hasInstitutionsLoaded = false;
    3027        private List<Institution> centers = new ArrayList<Institution>();
    3128
    32         public CenterRegistryLive() {
     29        public CenterRegistryLive(String centerRegistryUrl) {
    3330                super();
    34                 processContext();
     31                this.centerRegistryUrl = centerRegistryUrl;
    3532        }
    3633
     
    4845                hasInstitutionsLoaded = true;
    4946                URI url = URI.create(centerRegistryUrl);
    50                 CenterRegistryConnector connector = new CenterRegistryConnector(url, 30000);
    51                 try {
     47                try (CenterRegistryConnector connector = new CenterRegistryConnector(url, 30000)) {
    5248                        List<Center> regCenters = connector.retrieveCenters();
    5349                        for (Center regCenter : regCenters) {
     
    7773                } catch (ConnectorException ex) {
    7874                        Logger.getLogger(CenterRegistryLive.class.getName()).log(Level.SEVERE, null, ex);
    79                 } finally {
    80                         connector.close();
    8175                }
    8276                LOGGER.log(Level.FINE, "Number of Centers: {0}", centers.size());
     
    9791                return centers.get(index);
    9892        }
    99 
    100         private void processContext() {
    101                 InitialContext context;
    102                 try {
    103                         context = new InitialContext();
    104                         centerRegistryUrl = (String) context.lookup("java:comp/env/center-registry-url");
    105                 } catch (NamingException ex) {
    106                         LOGGER.log(Level.SEVERE, null, ex);
    107                 }
    108         }
    109 
    11093}
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/registry/Corpus.java

    r5758 r5771  
    44import java.util.Collections;
    55import java.util.HashSet;
    6 import java.util.Iterator;
    76import java.util.List;
    87import java.util.Set;
     
    4544        }
    4645
    47         public Iterator<Corpus> getSubCorpora() {
    48                 return subCorpora.iterator();
     46        public List<Corpus> getSubCorpora() {
     47                return Collections.unmodifiableList(subCorpora);
    4948        }
    5049
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/registry/Institution.java

    r5758 r5771  
    1414        private String link;
    1515        private ArrayList<Endpoint> endpoints;
     16
     17        // for JSON deserialization
     18        public Institution() {
     19        }
    1620
    1721        public Institution(String name, String link) {
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/rest/RestService.java

    r5758 r5771  
    5353        @Path("corpora")
    5454        public Response getCorpora() throws IOException {
    55                 List<Corpus> corpora = Aggregator.getInstance().getScanCache().getRootCorpora();
     55                List<Corpus> corpora = Aggregator.getInstance().getCorpora().getCorpora();
    5656                return Response.ok(toJson(corpora)).build();
    5757        }
     
    7878        @Path("languages")
    7979        public Response getLanguages() throws IOException {
    80                 Set<String> codes = Aggregator.getInstance().getScanCache().getLanguages();
     80                Set<String> codes = Aggregator.getInstance().getCorpora().getLanguages();
    8181                List<JsonLang> languages = new ArrayList<JsonLang>();
    8282                for (String code : codes) {
     
    9898                        return Response.status(400).entity("'query' parameter expected").build();
    9999                }
    100                 List<Corpus> corpora = Aggregator.getInstance().getScanCache().getRootCorpora();
     100                List<Corpus> corpora = Aggregator.getInstance().getCorpora().getCorpora();
    101101                Search search = Aggregator.getInstance().startSearch(SRUVersion.VERSION_1_2, corpora, query, "eng", 10);
    102102                URI uri = URI.create("" + search.getId());
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/util/CounterLatch.java

    r5758 r5771  
    1 package eu.clarin.sru.fcs.aggregator.cache;
     1package eu.clarin.sru.fcs.aggregator.util;
    22
    33import java.util.concurrent.atomic.AtomicInteger;
    4 import java.util.function.IntUnaryOperator;
    54
    65/**
     
    98 */
    109public class CounterLatch {
    11 
    12         private static final IntUnaryOperator countDown = new IntUnaryOperator() {
    13                 @Override
    14                 public int applyAsInt(int operand) {
    15                         return (operand > 0) ? operand - 1 : 0;
    16                 }
    17         };
    18 
    1910        private final AtomicInteger counter = new AtomicInteger();
    2011        private final Object lock = new Object();
     
    3021        public int decrement() {
    3122                synchronized (lock) {
    32                         int ret = counter.updateAndGet(countDown);
    33                         if (0 == ret) {
     23                        int ret = counter.decrementAndGet();
     24                        if (ret <= 0) {
    3425                                lock.notifyAll();
    3526                        }
  • SRUAggregator/trunk/src/main/webapp/WEB-INF/web.xml

    r5720 r5771  
    2929                <env-entry-value>3</env-entry-value>
    3030        </env-entry>
    31         <!-- Value of this property (data.location) should be specified in CATALINA_OPT
    32         (e.g. inside /etc/init.d/tomcat7*), unless the default is used.
    33         Currently defaults to /data/ or user.home -->
    34         <env-entry>
    35                 <env-entry-name>data-location-property</env-entry-name>
    36                 <env-entry-type>java.lang.String</env-entry-type>
    37                 <env-entry-value>data.location</env-entry-value>
    38         </env-entry>
    39         <!-- Folder for the data specific to the current Aggregator application,
     31        <!-- Filepath for the data specific to the current Aggregator application,
    4032        supposed to be inside the data location folder above  -->
    4133        <env-entry>
    42                 <env-entry-name>aggregator-folder</env-entry-name>
     34                <env-entry-name>aggregator-file-path</env-entry-name>
    4335                <env-entry-type>java.lang.String</env-entry-type>
    44                 <env-entry-value>fcsAggregator</env-entry-value>
     36                <env-entry-value>/data/fcsAggregator/fcsAggregatorCorpora.json</env-entry-value>
    4537        </env-entry>
    4638
  • SRUAggregator/trunk/src/main/webapp/index.html

    r5758 r5771  
    6464                                        <span class="glyphicon glyphicon-info-sign"></span>
    6565                                        <!-- <span>VERSION ${pom.version} </span> -->
    66                                         <span>VERSION 2.0.0-ALPHA </span>
     66                                        <span>VERSION 2.0.0-ALPHA2 </span>
    6767                                </a>
    6868                        </div>
     
    8787        <![endif]-->   
    8888        <script src="lib/react-with-addons.js"></script>
    89         <script src="lib/react-bootstrap.min.js"></script>
    9089        <script src="js/components.js"></script>
     90        <script src="js/search.js"></script>
    9191        <script src="js/main.js"></script>
    9292</body>
  • SRUAggregator/trunk/src/main/webapp/js/components.js

    r5758 r5771  
    11/** @jsx React.DOM */
    22
    3 window.MyReact = {};
    43var PT = React.PropTypes;
    54var ReactCSSTransitionGroup = React.addons.ReactCSSTransitionGroup;
    65var ReactTransitionGroup = React.addons.TransitionGroup;
    76
     7window.MyReact = {};
    88window.MyReact.Panel = React.createClass({displayName: 'Panel',
    99        propTypes: {
     
    2525                var chevron = "glyphicon glyphicon-chevron-" + (this.state.open ? "down":"right");
    2626                var chevronStyle={fontSize:12};
    27                 return  React.DOM.div({key: this.props.key, className: "bs-callout bs-callout-info"},
    28                                         React.DOM.div({className: "panel"},
    29                                                 React.DOM.div({className: "panel-heading unselectable", onClick: this.toggleState},
    30                                                         React.DOM.p({className: "panel-title unselectable"},
    31                                                                 React.DOM.span({className: chevron, style: chevronStyle}), " ",
     27                return  React.createElement("div", {key: this.props.key, className: "bs-callout bs-callout-info"},
     28                                        React.createElement("div", {className: "panel"},
     29                                                React.createElement("div", {className: "panel-heading unselectable", onClick: this.toggleState},
     30                                                        React.createElement("p", {className: "panel-title unselectable"},
     31                                                                React.createElement("span", {className: chevron, style: chevronStyle}), " ",
    3232                                                                this.props.header
    3333                                                        )
    3434                                                ),
    35                                                 ReactTransitionGroup({transitionName: "display"},
    36                                                         this.state.open ? this.props.children : false
     35                                                React.createElement("div", {className: "panel-body"},
     36                                                        React.createElement(ReactTransitionGroup, {transitionName: "display"},
     37                                                                this.state.open ? this.props.children : false
     38                                                        )
    3739                                                )
    3840                                        )
     
    4345window.MyReact.PanelGroup = React.createClass({displayName: 'PanelGroup',
    4446        render: function() {
    45                 return  React.DOM.div({className: "panel-group"}, " ", this.props.children, " ");
     47                return  React.createElement("div", {className: "panel-group"}, " ", this.props.children, " ");
    4648        },
    4749});
  • SRUAggregator/trunk/src/main/webapp/js/components.jsx

    r5758 r5771  
    11/** @jsx React.DOM */
    22
    3 window.MyReact = {};
    43var PT = React.PropTypes;
    54var ReactCSSTransitionGroup = React.addons.ReactCSSTransitionGroup;
    65var ReactTransitionGroup = React.addons.TransitionGroup;
    76
     7window.MyReact = {};
    88window.MyReact.Panel = React.createClass({
    99        propTypes: {
  • SRUAggregator/trunk/src/main/webapp/js/main.js

    r5758 r5771  
    22
    33var PT = React.PropTypes;
    4 var ReactCSSTransitionGroup = window.React.addons.CSSTransitionGroup;
    54
    6 // react bootstrap components
    7 var RBAccordion = window.ReactBootstrap.Accordion;
    8 var RBPanel = window.ReactBootstrap.Panel;
    9 var RBDropdownButton = window.ReactBootstrap.DropdownButton;
    10 var RBMenuItem = window.ReactBootstrap.MenuItem;
    11 var RBNavbar = window.ReactBootstrap.Navbar;
    12 var RBNav = window.ReactBootstrap.Nav;
    13 var RBNavItem = window.ReactBootstrap.NavItem;
    14 var RBInput = window.ReactBootstrap.Input;
    15 var RBButton = window.ReactBootstrap.Button;
    16 var RBModal = window.ReactBootstrap.Modal;
    17 var RBModalTrigger = window.ReactBootstrap.ModalTrigger;
    18 var RBOverlayMixin = window.ReactBootstrap.OverlayMixin;
    19 var RBProgressBar = window.ReactBootstrap.ProgressBar;
    20 // own components
    21 var Panel = window.MyReact.Panel;
     5var SearchBox = window.MyAggregator.SearchBox;
     6var CorpusSelection = window.MyAggregator.CorpusSelection;
     7var LanguageSelection = window.MyAggregator.LanguageSelection;
     8var HitNumber = window.MyAggregator.HitNumber;
     9var Results = window.MyAggregator.Results;
    2210
    23 var CorpusSelectionModal = React.createClass({displayName: 'CorpusSelectionModal',
    24         propTypes: {
    25                 corpora: PT.array.isRequired,
    26         },
    27 
    28         getInitialState: function () {
    29                 return {
    30                         isModalOpen: true,
    31                 };
    32         },
    33 
    34         hide: function() {
    35                 this.setState({isModalOpen:false});
    36         },
    37 
    38         renderCorpora: function() {
    39                 var that = this;
    40                 return this.props.corpora.map(function(corpus) {
    41                         var toggle = function() {
    42                                 corpus.checked = !corpus.checked;
    43                                 that.setState({corpora : corpora});
    44                         };
    45                         var input = corpus.checked ?
    46                                 (RBInput({type: "checkbox", checked: true, label: corpus.displayName, onChange: toggle})) :
    47                                 (RBInput({type: "checkbox", label: corpus.displayName, onChange: toggle}));
    48                         var records = corpus.numberOfRecords ? (corpus.numberOfRecords+" records") : "";
    49                         var bold = {fontWeight:"bold"};
    50                         var spaced = {marginRight:"20px"};
    51                         return  React.DOM.tr(null,
    52                                                 React.DOM.td(null, input),
    53                                                 React.DOM.td(null, React.DOM.p(null, corpus.description),
    54                                                         React.DOM.p(null, " ", React.DOM.span({style: bold}, "Institution:"), " ", React.DOM.span({style: spaced}, corpus.institution.name),
    55                                                                 React.DOM.span({style: bold}, "Language:"), " ", React.DOM.span({style: spaced}, corpus.languages),
    56                                                                 React.DOM.span(null, records)
    57                                                         )
    58                                                 )
    59                                         );
    60                 });
    61         },
    62 
    63         render: function() {
    64                 if (!this.state.isModalOpen) {
    65                         return React.DOM.span(null);
    66                 }
    67                 return this.transferPropsTo(
    68                                 RBModal({title: "Collection selection", onRequestHide: this.hide},
    69                                         React.DOM.div({className: "modal-body"},
    70                                                 React.DOM.div({className: "container"},
    71                                                         React.DOM.form(null,
    72                                                         React.DOM.table({className: "table table-condensed table-striped table-responsive"},
    73                                                                 React.DOM.thead(null,
    74                                                                         React.DOM.tr(null,
    75                                                                                 React.DOM.th(null, "Collection"),
    76                                                                                 React.DOM.th(null, "Description")
    77                                                                         )
    78                                                                 ),
    79                                                                 React.DOM.tbody(null, " ", this.renderCorpora(), " ")
    80                                                         )
    81                                                         )
    82                                                 )
    83                                         ),
    84                                         React.DOM.div({className: "modal-footer"},
    85                                                 RBButton({onClick: this.hide}, "Close")
    86                                         )
    87                                 )
    88                 );
    89         }
    90 });
    91 var CorpusSelection = React.createClass({displayName: 'CorpusSelection',
    92         propTypes: {
    93                 corpora: PT.array.isRequired,
    94         },
    95 
    96         render: function() {
    97                 var style={width:"240px"};
    98                 return  RBModalTrigger({modal: CorpusSelectionModal({corpora: this.props.corpora})},
    99                                         RBButton({style: style, onClick: this.handleClick},
    100                                                 "All available corpora", React.DOM.span({className: "caret"})
    101                                         )
    102                                 );
    103         }
    104 });
    105 
    106 
    107 var LanguageSelection = React.createClass({displayName: 'LanguageSelection',
    108         propTypes: {
    109                 languages: PT.array.isRequired,
    110         },
    111 
    112         render: function() {
    113                 var options = this.props.languages.map(function(lang) {
    114                         var desc = lang.name + " [" + lang.code + "]";
    115                         return React.DOM.option({value: lang.code, key: lang.code}, desc);
    116                 });
    117                 var style={width:"240px"};
    118                 return  RBInput({type: "select", defaultValue: "ALL", style: style},
    119                                         React.DOM.option({value: "ALL", key: "ALL"}, "All languages"),
    120                                         options
    121                                 );
    122         }
    123 });
    124 
    125 var HitNumber = React.createClass({displayName: 'HitNumber',
    126         propTypes: {
    127                 onChange: PT.func.isRequired,
    128                 numberOfResults: PT.number.isRequired,
    129         },
    130 
    131         handleChange: function(event) {
    132                 this.props.onChange(event.target.value);
    133         },
    134 
    135         render: function() {
    136                 var fifty = {width:"50px"};
    137                 return (
    138                         React.DOM.div({className: "input-group", style: fifty},
    139                                 React.DOM.input({id: "hits", type: "number", className: "input", name: "maxResults", min: "10", max: "50",
    140                                         value: this.props.numberOfResults, onChange: this.handleChange})
    141                         ) );
    142         }
    143 });
    144 
    145 var Search = React.createClass({displayName: 'Search',
    146         propTypes: {
    147                 search: PT.func.isRequired,
    148         },
    149 
    150         getInitialState: function () {
    151                 return {
    152                         query: ""
    153                 };
    154         },
    155 
    156         handleChange: function(event) {
    157         this.setState({query: event.target.value});
    158         },
    159 
    160         search: function() {
    161                 this.props.search(this.state.query);
    162         },
    163 
    164         render: function() {
    165                 return  React.DOM.div({className: "input-group"},
    166                                         React.DOM.input({name: "query", type: "text", className: "form-control input-lg search",
    167                                                 value: this.state.query, placeholder: "Search", tabIndex: "1",
    168                                                 onChange: this.handleChange}),
    169                                         React.DOM.div({className: "input-group-btn"},
    170                                                 React.DOM.button({className: "btn btn-default input-lg search", type: "submit", tabIndex: "2", onClick: this.search},
    171                                                         React.DOM.i({className: "glyphicon glyphicon-search"})
    172                                                 )
    173                                         )
    174                                 );
    175         }
    176 });
    177 
    178 var Results = React.createClass({displayName: 'Results',
    179         propTypes: {
    180                 requests: PT.array.isRequired,
    181                 results: PT.array.isRequired,
    182         },
    183 
    184         render: function() {
    185                 var fulllength = {width:"100%"};
    186                 var margintop = {marginTop:"10px"};
    187                 var sleft={textAlign:"left", verticalAlign:"middle", width:"50%"};
    188                 var scenter={textAlign:"center", verticalAlign:"middle", maxWidth:"50%"};
    189                 var sright={textAlign:"right", verticalAlign:"middle", maxWidth:"50%"};
    190 
    191                 var resultPanels = this.props.results.map(function(corpusHit) {
    192                         var rows = corpusHit.kwics.map(function(hit,i) {
    193                                 var spans = hit.fragments.map(function(tf, j) {
    194                                         return React.DOM.span({key: j, className: tf.hit?"keyword":""}, tf.text);
    195                                 });
    196                                 return  React.DOM.p({key: i}, spans);
    197                         });
    198                         if (corpusHit.kwics.length === 0) {
    199                                 return React.DOM.span({key: corpusHit.corpus.displayName});
    200                         }
    201                         return  Panel({header: corpusHit.corpus.displayName, key: corpusHit.corpus.displayName},
    202                                                 rows
    203                                         );
    204                 });
    205                 var noHits = this.props.results.filter(function(corpusHit) { return corpusHit.kwics.length === 0; });
    206                 var message = noHits.length > 0 ? (noHits.length + " other collections returned no results") : "";
    207                 var percents = 100 * this.props.results.length / (this.props.requests.length + this.props.results.length);
    208                 var progress = this.props.requests.length > 0 ?
    209                         RBProgressBar({active: true, now: percents, label: "%(percent)s%"}) :
    210                         React.DOM.span(null);
    211                 return  React.DOM.div(null,
    212                                         ReactCSSTransitionGroup({transitionName: "fade"},
    213                                                 resultPanels,
    214                                                 React.DOM.div({key: "-message-", style: margintop}, message, " "),
    215                                                 React.DOM.div({key: "-progress-", style: margintop}, progress)
    216                                         )
    217                                 );
    218         }
    219 });
    220 
    221 var Container = React.createClass({displayName: 'Container',
     11var Main = React.createClass({displayName: 'Main',
    22212        getInitialState: function () {
    22313                return {
     
    23020                        numberOfResults: 10,
    23121                        searchId: null,
    232                         timer: null,
     22                        showCorpora: false,
    23323                };
    23424        },
     
    28878                        url: 'rest/search/'+that.state.searchId,
    28979                        success: function(json, textStatus, jqXHR) {
    290                                 console.log("search result ok:", json);
    29180                                if (json.requests.length === 0) {
    29281                                        clearInterval(that.state.timerId);
     
    30190        },
    30291
     92        toggleCorpusSelection: function(e) {
     93                this.setState({showCorpora:!this.state.showCorpora});
     94                e.preventDefault();
     95                e.stopPropagation();
     96        },
     97
     98        renderCorpusSelection: function() {
     99                var style={width:"240px"};
     100                return  React.createElement("button", {type: "button", className: "btn btn-default", style: style, onClick: this.toggleCorpusSelection},
     101                                        "All available corpora", React.createElement("span", {className: "caret"})
     102                                );
     103        },
     104
    303105        render: function() {
    304106                var margin = {marginTop:"0", padding:"20px"};
    305107                var inline = {display:"inline-block", margin:"0 5px 0 0"};
    306108                var inlinew = {display:"inline-block", margin:"0 5px 0 0", width:"240px;"};
    307                 return (
    308                         React.DOM.div(null,
    309                                 React.DOM.div({className: "center-block top-gap"},
    310                                         Search({search: this.search})
    311                                 ),
    312                                 React.DOM.div({className: "center-block aligncenter"},
    313                                         React.DOM.div({style: margin},
    314                                         React.DOM.form({className: "form-inline", role: "form"},
    315                                                 React.DOM.label({htmlFor: "dropdownCorpus", className: "muted"}, "search in "),
    316                                                 React.DOM.div({id: "corpusSelection", style: inlinew},
    317                                                         CorpusSelection({corpora: this.state.corpora})
    318                                                 ),
    319                                                 React.DOM.label({htmlFor: "dropdownLanguage", className: "muted"}, " for results in "),
    320                                                 React.DOM.div({id: "languageSelection", style: inlinew},
    321                                                         LanguageSelection({languages: this.state.languages})
    322                                                 ),
    323                                                 React.DOM.label({className: "muted"}, " and show maximum "),
    324                                                 React.DOM.div({style: inline},
    325                                                         HitNumber({onChange: this.setNumberOfResults, numberOfResults: this.state.numberOfResults})
    326                                                 ),
    327                                                 React.DOM.label({htmlFor: "hits", className: "muted"}, " hits")
     109                return  React.createElement("div", null,
     110                                        React.createElement("div", {className: "center-block top-gap"},
     111                                                React.createElement(SearchBox, {search: this.search})
     112                                        ),
     113                                        React.createElement("div", {className: "center-block aligncenter"},
     114                                                React.createElement("div", {style: margin},
     115                                                        React.createElement("form", {className: "form-inline", role: "form"},
     116                                                                React.createElement("label", {htmlFor: "dropdownCorpus", className: "muted"}, "search in "),
     117                                                                React.createElement("div", {id: "corpusSelection", style: inlinew},
     118                                                                        this.renderCorpusSelection()
     119                                                                ),
     120                                                                React.createElement("label", {htmlFor: "dropdownLanguage", className: "muted"}, " for results in "),
     121                                                                React.createElement("div", {id: "languageSelection", style: inlinew},
     122                                                                        React.createElement(LanguageSelection, {languages: this.state.languages})
     123                                                                ),
     124                                                                React.createElement("label", {className: "muted"}, " and show maximum "),
     125                                                                React.createElement("div", {style: inline},
     126                                                                        React.createElement(HitNumber, {onChange: this.setNumberOfResults, numberOfResults: this.state.numberOfResults})
     127                                                                ),
     128                                                                React.createElement("label", {htmlFor: "hits", className: "muted"}, " hits")
     129                                                        )
     130                                                )
     131                                        ),
     132
     133                                        React.createElement("div", {className: "top-gap"},
     134                                                 this.state.showCorpora ?
     135                                                        React.createElement(CorpusView, {corpora: this.state.corpora}) :
     136                                                        React.createElement(Results, {requests: this.state.hits.requests, results: this.state.hits.results})
     137                                               
    328138                                        )
    329                                         )
    330                                 ),
    331 
    332 
    333                                 React.DOM.div({id: "results", className: "top-gap"},
    334                                         Results({requests: this.state.hits.requests, results: this.state.hits.results})
    335                                 )
    336                         ) );
     139                                ) ;
    337140        }
    338141});
    339142
    340143(function() {
    341         var container = React.renderComponent(Container(null), document.getElementById('reactMain') );
     144        var container = React.render(React.createElement(Main, null), document.getElementById('reactMain') );
    342145        container.refreshCorpora();
    343146        container.refreshLanguages();
  • SRUAggregator/trunk/src/main/webapp/js/main.jsx

    r5758 r5771  
    22
    33var PT = React.PropTypes;
    4 var ReactCSSTransitionGroup = window.React.addons.CSSTransitionGroup;
    54
    6 // react bootstrap components
    7 var RBAccordion = window.ReactBootstrap.Accordion;
    8 var RBPanel = window.ReactBootstrap.Panel;
    9 var RBDropdownButton = window.ReactBootstrap.DropdownButton;
    10 var RBMenuItem = window.ReactBootstrap.MenuItem;
    11 var RBNavbar = window.ReactBootstrap.Navbar;
    12 var RBNav = window.ReactBootstrap.Nav;
    13 var RBNavItem = window.ReactBootstrap.NavItem;
    14 var RBInput = window.ReactBootstrap.Input;
    15 var RBButton = window.ReactBootstrap.Button;
    16 var RBModal = window.ReactBootstrap.Modal;
    17 var RBModalTrigger = window.ReactBootstrap.ModalTrigger;
    18 var RBOverlayMixin = window.ReactBootstrap.OverlayMixin;
    19 var RBProgressBar = window.ReactBootstrap.ProgressBar;
    20 // own components
    21 var Panel = window.MyReact.Panel;
     5var SearchBox = window.MyAggregator.SearchBox;
     6var CorpusSelection = window.MyAggregator.CorpusSelection;
     7var LanguageSelection = window.MyAggregator.LanguageSelection;
     8var HitNumber = window.MyAggregator.HitNumber;
     9var Results = window.MyAggregator.Results;
    2210
    23 var CorpusSelectionModal = React.createClass({
    24         propTypes: {
    25                 corpora: PT.array.isRequired,
    26         },
    27 
    28         getInitialState: function () {
    29                 return {
    30                         isModalOpen: true,
    31                 };
    32         },
    33 
    34         hide: function() {
    35                 this.setState({isModalOpen:false});
    36         },
    37 
    38         renderCorpora: function() {
    39                 var that = this;
    40                 return this.props.corpora.map(function(corpus) {
    41                         var toggle = function() {
    42                                 corpus.checked = !corpus.checked;
    43                                 that.setState({corpora : corpora});
    44                         };
    45                         var input = corpus.checked ?
    46                                 (<RBInput type="checkbox" checked label={corpus.displayName} onChange={toggle}/>) :
    47                                 (<RBInput type="checkbox" label={corpus.displayName} onChange={toggle}/>);
    48                         var records = corpus.numberOfRecords ? (corpus.numberOfRecords+" records") : "";
    49                         var bold = {fontWeight:"bold"};
    50                         var spaced = {marginRight:"20px"};
    51                         return  <tr>
    52                                                 <td>{input}</td>
    53                                                 <td><p>{corpus.description}</p>
    54                                                         <p>     <span style={bold}>Institution:</span> <span style={spaced}>{corpus.institution.name}</span>
    55                                                                 <span style={bold}>Language:</span> <span style={spaced}>{corpus.languages}</span>
    56                                                                 <span>{records}</span>
    57                                                         </p>
    58                                                 </td>
    59                                         </tr>;
    60                 });
    61         },
    62 
    63         render: function() {
    64                 if (!this.state.isModalOpen) {
    65                         return <span/>;
    66                 }
    67                 return this.transferPropsTo(
    68                                 <RBModal title="Collection selection" onRequestHide={this.hide}>
    69                                         <div className="modal-body">
    70                                                 <div className="container">
    71                                                         <form>
    72                                                         <table className="table table-condensed table-striped table-responsive">
    73                                                                 <thead>
    74                                                                         <tr>
    75                                                                                 <th>Collection</th>
    76                                                                                 <th>Description</th>
    77                                                                         </tr>
    78                                                                 </thead>
    79                                                                 <tbody> {this.renderCorpora()} </tbody>
    80                                                         </table>
    81                                                         </form>
    82                                                 </div>
    83                                         </div>
    84                                         <div className="modal-footer">
    85                                                 <RBButton onClick={this.hide}>Close</RBButton>
    86                                         </div>
    87                                 </RBModal>
    88                 );
    89         }
    90 });
    91 var CorpusSelection = React.createClass({
    92         propTypes: {
    93                 corpora: PT.array.isRequired,
    94         },
    95 
    96         render: function() {
    97                 var style={width:"240px"};
    98                 return  <RBModalTrigger modal={<CorpusSelectionModal corpora={this.props.corpora}/>}>
    99                                         <RBButton style={style} onClick={this.handleClick}>
    100                                                 All available corpora<span className="caret"></span>
    101                                         </RBButton>
    102                                 </RBModalTrigger>;
    103         }
    104 });
    105 
    106 
    107 var LanguageSelection = React.createClass({
    108         propTypes: {
    109                 languages: PT.array.isRequired,
    110         },
    111 
    112         render: function() {
    113                 var options = this.props.languages.map(function(lang) {
    114                         var desc = lang.name + " [" + lang.code + "]";
    115                         return <option value={lang.code} key={lang.code}>{desc}</option>;
    116                 });
    117                 var style={width:"240px"};
    118                 return  <RBInput type="select" defaultValue="ALL" style={style}>
    119                                         <option value="ALL" key="ALL">All languages</option>
    120                                         {options}
    121                                 </RBInput>;
    122         }
    123 });
    124 
    125 var HitNumber = React.createClass({
    126         propTypes: {
    127                 onChange: PT.func.isRequired,
    128                 numberOfResults: PT.number.isRequired,
    129         },
    130 
    131         handleChange: function(event) {
    132                 this.props.onChange(event.target.value);
    133         },
    134 
    135         render: function() {
    136                 var fifty = {width:"50px"};
    137                 return (
    138                         <div className="input-group"  style={fifty}>
    139                                 <input id="hits" type="number" className="input" name="maxResults" min="10" max="50"
    140                                         value={this.props.numberOfResults} onChange={this.handleChange}></input>
    141                         </div> );
    142         }
    143 });
    144 
    145 var Search = React.createClass({
    146         propTypes: {
    147                 search: PT.func.isRequired,
    148         },
    149 
    150         getInitialState: function () {
    151                 return {
    152                         query: ""
    153                 };
    154         },
    155 
    156         handleChange: function(event) {
    157         this.setState({query: event.target.value});
    158         },
    159 
    160         search: function() {
    161                 this.props.search(this.state.query);
    162         },
    163 
    164         render: function() {
    165                 return  <div className="input-group">
    166                                         <input name="query" type="text" className="form-control input-lg search"
    167                                                 value={this.state.query} placeholder="Search" tabIndex="1"
    168                                                 onChange={this.handleChange}></input>
    169                                         <div className="input-group-btn">
    170                                                 <button className="btn btn-default input-lg search" type="submit" tabIndex="2" onClick={this.search}>
    171                                                         <i className="glyphicon glyphicon-search"></i>
    172                                                 </button>
    173                                         </div>
    174                                 </div>;
    175         }
    176 });
    177 
    178 var Results = React.createClass({
    179         propTypes: {
    180                 requests: PT.array.isRequired,
    181                 results: PT.array.isRequired,
    182         },
    183 
    184         render: function() {
    185                 var fulllength = {width:"100%"};
    186                 var margintop = {marginTop:"10px"};
    187                 var sleft={textAlign:"left", verticalAlign:"middle", width:"50%"};
    188                 var scenter={textAlign:"center", verticalAlign:"middle", maxWidth:"50%"};
    189                 var sright={textAlign:"right", verticalAlign:"middle", maxWidth:"50%"};
    190 
    191                 var resultPanels = this.props.results.map(function(corpusHit) {
    192                         var rows = corpusHit.kwics.map(function(hit,i) {
    193                                 var spans = hit.fragments.map(function(tf, j) {
    194                                         return <span key={j} className={tf.hit?"keyword":""}>{tf.text}</span>;
    195                                 });
    196                                 return  <p key={i}>{spans}</p>;
    197                         });
    198                         if (corpusHit.kwics.length === 0) {
    199                                 return <span key={corpusHit.corpus.displayName}></span>;
    200                         }
    201                         return  <Panel header={corpusHit.corpus.displayName} key={corpusHit.corpus.displayName}>
    202                                                 {rows}
    203                                         </Panel>;
    204                 });
    205                 var noHits = this.props.results.filter(function(corpusHit) { return corpusHit.kwics.length === 0; });
    206                 var message = noHits.length > 0 ? (noHits.length + " other collections returned no results") : "";
    207                 var percents = 100 * this.props.results.length / (this.props.requests.length + this.props.results.length);
    208                 var progress = this.props.requests.length > 0 ?
    209                         <RBProgressBar active now={percents} label="%(percent)s%" /> :
    210                         <span />;
    211                 return  <div>
    212                                         <ReactCSSTransitionGroup transitionName="fade">
    213                                                 {resultPanels}
    214                                                 <div key="-message-" style={margintop}>{message} </div>
    215                                                 <div key="-progress-" style={margintop}>{progress}</div>
    216                                         </ReactCSSTransitionGroup>
    217                                 </div>;
    218         }
    219 });
    220 
    221 var Container = React.createClass({
     11var Main = React.createClass({
    22212        getInitialState: function () {
    22313                return {
     
    23020                        numberOfResults: 10,
    23121                        searchId: null,
    232                         timer: null,
     22                        showCorpora: false,
    23323                };
    23424        },
     
    28878                        url: 'rest/search/'+that.state.searchId,
    28979                        success: function(json, textStatus, jqXHR) {
    290                                 console.log("search result ok:", json);
    29180                                if (json.requests.length === 0) {
    29281                                        clearInterval(that.state.timerId);
     
    30190        },
    30291
     92        toggleCorpusSelection: function(e) {
     93                this.setState({showCorpora:!this.state.showCorpora});
     94                e.preventDefault();
     95                e.stopPropagation();
     96        },
     97
     98        renderCorpusSelection: function() {
     99                var style={width:"240px"};
     100                return  <button type="button" className="btn btn-default" style={style} onClick={this.toggleCorpusSelection}>
     101                                        All available corpora<span className="caret"></span>
     102                                </button>;
     103        },
     104
    303105        render: function() {
    304106                var margin = {marginTop:"0", padding:"20px"};
    305107                var inline = {display:"inline-block", margin:"0 5px 0 0"};
    306108                var inlinew = {display:"inline-block", margin:"0 5px 0 0", width:"240px;"};
    307                 return (
    308                         <div>
    309                                 <div className="center-block top-gap">
    310                                         <Search search={this.search} />
    311                                 </div>
    312                                 <div className="center-block aligncenter">
    313                                         <div style={margin}>
    314                                         <form className="form-inline" role="form">
    315                                                 <label htmlFor="dropdownCorpus" className="muted">search in </label>
    316                                                 <div id="corpusSelection" style={inlinew}>
    317                                                         <CorpusSelection corpora={this.state.corpora} />
     109                return  <div>
     110                                        <div className="center-block top-gap">
     111                                                <SearchBox search={this.search} />
     112                                        </div>
     113                                        <div className="center-block aligncenter">
     114                                                <div style={margin}>
     115                                                        <form className="form-inline" role="form">
     116                                                                <label htmlFor="dropdownCorpus" className="muted">search in </label>
     117                                                                <div id="corpusSelection" style={inlinew}>
     118                                                                        {this.renderCorpusSelection()}
     119                                                                </div>
     120                                                                <label htmlFor="dropdownLanguage" className="muted"> for results in </label>
     121                                                                <div id="languageSelection" style={inlinew}>
     122                                                                        <LanguageSelection languages={this.state.languages} />
     123                                                                </div>
     124                                                                <label className="muted"> and show maximum </label>
     125                                                                <div style={inline}>
     126                                                                        <HitNumber onChange={this.setNumberOfResults} numberOfResults={this.state.numberOfResults} />
     127                                                                </div>
     128                                                                <label htmlFor="hits" className="muted"> hits</label>
     129                                                        </form>
    318130                                                </div>
    319                                                 <label htmlFor="dropdownLanguage" className="muted"> for results in </label>
    320                                                 <div id="languageSelection" style={inlinew}>
    321                                                         <LanguageSelection languages={this.state.languages} />
    322                                                 </div>
    323                                                 <label className="muted"> and show maximum </label>
    324                                                 <div style={inline}>
    325                                                         <HitNumber onChange={this.setNumberOfResults} numberOfResults={this.state.numberOfResults} />
    326                                                 </div>
    327                                                 <label htmlFor="hits" className="muted"> hits</label>
    328                                         </form>
    329131                                        </div>
    330                                 </div>
    331132
    332 
    333                                 <div id="results" className="top-gap">
    334                                         <Results requests={this.state.hits.requests} results={this.state.hits.results} />
    335                                 </div>
    336                         </div> );
     133                                        <div className="top-gap">
     134                                                { this.state.showCorpora ?
     135                                                        <CorpusView corpora={this.state.corpora} /> :
     136                                                        <Results requests={this.state.hits.requests} results={this.state.hits.results} />
     137                                                }
     138                                        </div>
     139                                </div> ;
    337140        }
    338141});
    339142
    340143(function() {
    341         var container = React.renderComponent(<Container />, document.getElementById('reactMain') );
     144        var container = React.render(<Main />, document.getElementById('reactMain') );
    342145        container.refreshCorpora();
    343146        container.refreshLanguages();
  • SRUAggregator/trunk/src/main/webapp/lib/bootstrap.min.css

    r5720 r5771  
    11/*!
    2  * Bootstrap v3.2.0 (http://getbootstrap.com)
     2 * Bootstrap v3.3.0 (http://getbootstrap.com)
    33 * Copyright 2011-2014 Twitter, Inc.
    44 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
    5  *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;width:100% \9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;width:100% \9;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px;line-height:1.42857143 \0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-horizontal .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{position:absolute;z-index:-1;filter:alpha(opacity=0);opacity:0}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a{color:#777}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#428bca;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar[aria-valuenow="1"],.progress-bar[aria-valuenow="2"]{min-width:30px}.progress-bar[aria-valuenow="0"]{min-width:30px;color:#777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate3d(0,-25%,0);-o-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0)}.modal.in .modal-dialog{-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
     5 *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:before,:after{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px;line-height:1.42857143 \0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px;line-height:1.5 \0}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px;line-height:1.33 \0}_:-ms-fullscreen,:root input[type=date],_:-ms-fullscreen,:root input[type=time],_:-ms-fullscreen,:root input[type=datetime-local],_:-ms-fullscreen,:root input[type=month]{line-height:1.42857143}_:-ms-fullscreen.input-sm,:root input[type=date].input-sm,_:-ms-fullscreen.input-sm,:root input[type=time].input-sm,_:-ms-fullscreen.input-sm,:root input[type=datetime-local].input-sm,_:-ms-fullscreen.input-sm,:root input[type=month].input-sm{line-height:1.5}_:-ms-fullscreen.input-lg,:root input[type=date].input-lg,_:-ms-fullscreen.input-lg,:root input[type=time].input-lg,_:-ms-fullscreen.input-lg,:root input[type=datetime-local].input-lg,_:-ms-fullscreen.input-lg,:root input[type=month].input-lg{line-height:1.33}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,select.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,textarea.form-group-sm .form-control,select[multiple].input-sm,select[multiple].form-group-sm .form-control{height:auto}.input-lg,.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,select.form-group-lg .form-control{height:46px;line-height:46px}textarea.input-lg,textarea.form-group-lg .form-control,select[multiple].input-lg,select[multiple].form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#428bca;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#428bca;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-right:15px;padding-left:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
  • SRUAggregator/trunk/src/main/webapp/lib/react-with-addons.js

    r5758 r5771  
    11/**
    2  * React (with addons) v0.11.2
    3  */
    4 !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.React=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
    5 /**
    6  * Copyright 2013-2014 Facebook, Inc.
    7  *
    8  * Licensed under the Apache License, Version 2.0 (the "License");
    9  * you may not use this file except in compliance with the License.
    10  * You may obtain a copy of the License at
    11  *
    12  * http://www.apache.org/licenses/LICENSE-2.0
    13  *
    14  * Unless required by applicable law or agreed to in writing, software
    15  * distributed under the License is distributed on an "AS IS" BASIS,
    16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17  * See the License for the specific language governing permissions and
    18  * limitations under the License.
     2 * React (with addons) v0.12.0
     3 */
     4!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.React=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
     5/**
     6 * Copyright 2013-2014, Facebook, Inc.
     7 * All rights reserved.
     8 *
     9 * This source code is licensed under the BSD-style license found in the
     10 * LICENSE file in the root directory of this source tree. An additional grant
     11 * of patent rights can be found in the PATENTS file in the same directory.
     12 *
     13 * @providesModule ReactWithAddons
     14 */
     15
     16/**
     17 * This module exists purely in the open source project, and is meant as a way
     18 * to create a separate standalone build of React. This build has "addons", or
     19 * functionality we've built and think might be useful but doesn't have a good
     20 * place to live inside React core.
     21 */
     22
     23"use strict";
     24
     25var LinkedStateMixin = _dereq_("./LinkedStateMixin");
     26var React = _dereq_("./React");
     27var ReactComponentWithPureRenderMixin =
     28  _dereq_("./ReactComponentWithPureRenderMixin");
     29var ReactCSSTransitionGroup = _dereq_("./ReactCSSTransitionGroup");
     30var ReactTransitionGroup = _dereq_("./ReactTransitionGroup");
     31var ReactUpdates = _dereq_("./ReactUpdates");
     32
     33var cx = _dereq_("./cx");
     34var cloneWithProps = _dereq_("./cloneWithProps");
     35var update = _dereq_("./update");
     36
     37React.addons = {
     38  CSSTransitionGroup: ReactCSSTransitionGroup,
     39  LinkedStateMixin: LinkedStateMixin,
     40  PureRenderMixin: ReactComponentWithPureRenderMixin,
     41  TransitionGroup: ReactTransitionGroup,
     42
     43  batchedUpdates: ReactUpdates.batchedUpdates,
     44  classSet: cx,
     45  cloneWithProps: cloneWithProps,
     46  update: update
     47};
     48
     49if ("production" !== "development") {
     50  React.addons.Perf = _dereq_("./ReactDefaultPerf");
     51  React.addons.TestUtils = _dereq_("./ReactTestUtils");
     52}
     53
     54module.exports = React;
     55
     56},{"./LinkedStateMixin":25,"./React":31,"./ReactCSSTransitionGroup":34,"./ReactComponentWithPureRenderMixin":39,"./ReactDefaultPerf":56,"./ReactTestUtils":86,"./ReactTransitionGroup":90,"./ReactUpdates":91,"./cloneWithProps":113,"./cx":118,"./update":159}],2:[function(_dereq_,module,exports){
     57/**
     58 * Copyright 2013-2014, Facebook, Inc.
     59 * All rights reserved.
     60 *
     61 * This source code is licensed under the BSD-style license found in the
     62 * LICENSE file in the root directory of this source tree. An additional grant
     63 * of patent rights can be found in the PATENTS file in the same directory.
    1964 *
    2065 * @providesModule AutoFocusMixin
     
    3681module.exports = AutoFocusMixin;
    3782
    38 },{"./focusNode":120}],2:[function(_dereq_,module,exports){
     83},{"./focusNode":125}],3:[function(_dereq_,module,exports){
    3984/**
    4085 * Copyright 2013 Facebook, Inc.
    41  *
    42  * Licensed under the Apache License, Version 2.0 (the "License");
    43  * you may not use this file except in compliance with the License.
    44  * You may obtain a copy of the License at
    45  *
    46  * http://www.apache.org/licenses/LICENSE-2.0
    47  *
    48  * Unless required by applicable law or agreed to in writing, software
    49  * distributed under the License is distributed on an "AS IS" BASIS,
    50  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    51  * See the License for the specific language governing permissions and
    52  * limitations under the License.
     86 * All rights reserved.
     87 *
     88 * This source code is licensed under the BSD-style license found in the
     89 * LICENSE file in the root directory of this source tree. An additional grant
     90 * of patent rights can be found in the PATENTS file in the same directory.
    5391 *
    5492 * @providesModule BeforeInputEventPlugin
     
    107145// Track characters inserted via keypress and composition events.
    108146var fallbackChars = null;
     147
     148// Track whether we've ever handled a keypress on the space key.
     149var hasSpaceKeypress = false;
    109150
    110151/**
     
    177218          }
    178219
    179           chars = String.fromCharCode(which);
     220          hasSpaceKeypress = true;
     221          chars = SPACEBAR_CHAR;
    180222          break;
    181223
     
    185227
    186228          // If it's a spacebar character, assume that we have already handled
    187           // it at the keypress level and bail immediately.
    188           if (chars === SPACEBAR_CHAR) {
     229          // it at the keypress level and bail immediately. Android Chrome
     230          // doesn't give us keycodes, so we need to blacklist it.
     231          if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {
    189232            return;
    190233          }
     
    260303module.exports = BeforeInputEventPlugin;
    261304
    262 },{"./EventConstants":16,"./EventPropagators":21,"./ExecutionEnvironment":22,"./SyntheticInputEvent":98,"./keyOf":141}],3:[function(_dereq_,module,exports){
    263 /**
    264  * Copyright 2013-2014 Facebook, Inc.
    265  *
    266  * Licensed under the Apache License, Version 2.0 (the "License");
    267  * you may not use this file except in compliance with the License.
    268  * You may obtain a copy of the License at
    269  *
    270  * http://www.apache.org/licenses/LICENSE-2.0
    271  *
    272  * Unless required by applicable law or agreed to in writing, software
    273  * distributed under the License is distributed on an "AS IS" BASIS,
    274  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    275  * See the License for the specific language governing permissions and
    276  * limitations under the License.
     305},{"./EventConstants":17,"./EventPropagators":22,"./ExecutionEnvironment":23,"./SyntheticInputEvent":101,"./keyOf":147}],4:[function(_dereq_,module,exports){
     306/**
     307 * Copyright 2013-2014, Facebook, Inc.
     308 * All rights reserved.
     309 *
     310 * This source code is licensed under the BSD-style license found in the
     311 * LICENSE file in the root directory of this source tree. An additional grant
     312 * of patent rights can be found in the PATENTS file in the same directory.
    277313 *
    278314 * @providesModule CSSCore
     
    360396   * @param {DOMNode|DOMWindow} element the element to set the class on
    361397   * @param {string} className the CSS className
    362    * @returns {boolean} true if the element has the class, false if not
     398   * @return {boolean} true if the element has the class, false if not
    363399   */
    364400  hasClass: function(element, className) {
     
    377413module.exports = CSSCore;
    378414
    379 },{"./invariant":134}],4:[function(_dereq_,module,exports){
    380 /**
    381  * Copyright 2013-2014 Facebook, Inc.
    382  *
    383  * Licensed under the Apache License, Version 2.0 (the "License");
    384  * you may not use this file except in compliance with the License.
    385  * You may obtain a copy of the License at
    386  *
    387  * http://www.apache.org/licenses/LICENSE-2.0
    388  *
    389  * Unless required by applicable law or agreed to in writing, software
    390  * distributed under the License is distributed on an "AS IS" BASIS,
    391  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    392  * See the License for the specific language governing permissions and
    393  * limitations under the License.
     415},{"./invariant":140}],5:[function(_dereq_,module,exports){
     416/**
     417 * Copyright 2013-2014, Facebook, Inc.
     418 * All rights reserved.
     419 *
     420 * This source code is licensed under the BSD-style license found in the
     421 * LICENSE file in the root directory of this source tree. An additional grant
     422 * of patent rights can be found in the PATENTS file in the same directory.
    394423 *
    395424 * @providesModule CSSProperty
     
    500529module.exports = CSSProperty;
    501530
    502 },{}],5:[function(_dereq_,module,exports){
    503 /**
    504  * Copyright 2013-2014 Facebook, Inc.
    505  *
    506  * Licensed under the Apache License, Version 2.0 (the "License");
    507  * you may not use this file except in compliance with the License.
    508  * You may obtain a copy of the License at
    509  *
    510  * http://www.apache.org/licenses/LICENSE-2.0
    511  *
    512  * Unless required by applicable law or agreed to in writing, software
    513  * distributed under the License is distributed on an "AS IS" BASIS,
    514  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    515  * See the License for the specific language governing permissions and
    516  * limitations under the License.
     531},{}],6:[function(_dereq_,module,exports){
     532/**
     533 * Copyright 2013-2014, Facebook, Inc.
     534 * All rights reserved.
     535 *
     536 * This source code is licensed under the BSD-style license found in the
     537 * LICENSE file in the root directory of this source tree. An additional grant
     538 * of patent rights can be found in the PATENTS file in the same directory.
    517539 *
    518540 * @providesModule CSSPropertyOperations
     
    523545
    524546var CSSProperty = _dereq_("./CSSProperty");
    525 
     547var ExecutionEnvironment = _dereq_("./ExecutionEnvironment");
     548
     549var camelizeStyleName = _dereq_("./camelizeStyleName");
    526550var dangerousStyleValue = _dereq_("./dangerousStyleValue");
    527551var hyphenateStyleName = _dereq_("./hyphenateStyleName");
    528552var memoizeStringOnly = _dereq_("./memoizeStringOnly");
     553var warning = _dereq_("./warning");
    529554
    530555var processStyleName = memoizeStringOnly(function(styleName) {
    531556  return hyphenateStyleName(styleName);
    532557});
     558
     559var styleFloatAccessor = 'cssFloat';
     560if (ExecutionEnvironment.canUseDOM) {
     561  // IE8 only supports accessing cssFloat (standard) as styleFloat
     562  if (document.documentElement.style.cssFloat === undefined) {
     563    styleFloatAccessor = 'styleFloat';
     564  }
     565}
     566
     567if ("production" !== "development") {
     568  var warnedStyleNames = {};
     569
     570  var warnHyphenatedStyleName = function(name) {
     571    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {
     572      return;
     573    }
     574
     575    warnedStyleNames[name] = true;
     576    ("production" !== "development" ? warning(
     577      false,
     578      'Unsupported style property ' + name + '. Did you mean ' +
     579      camelizeStyleName(name) + '?'
     580    ) : null);
     581  };
     582}
    533583
    534584/**
     
    555605        continue;
    556606      }
     607      if ("production" !== "development") {
     608        if (styleName.indexOf('-') > -1) {
     609          warnHyphenatedStyleName(styleName);
     610        }
     611      }
    557612      var styleValue = styles[styleName];
    558613      if (styleValue != null) {
     
    577632        continue;
    578633      }
     634      if ("production" !== "development") {
     635        if (styleName.indexOf('-') > -1) {
     636          warnHyphenatedStyleName(styleName);
     637        }
     638      }
    579639      var styleValue = dangerousStyleValue(styleName, styles[styleName]);
     640      if (styleName === 'float') {
     641        styleName = styleFloatAccessor;
     642      }
    580643      if (styleValue) {
    581644        style[styleName] = styleValue;
     
    599662module.exports = CSSPropertyOperations;
    600663
    601 },{"./CSSProperty":4,"./dangerousStyleValue":115,"./hyphenateStyleName":132,"./memoizeStringOnly":143}],6:[function(_dereq_,module,exports){
    602 /**
    603  * Copyright 2013-2014 Facebook, Inc.
    604  *
    605  * Licensed under the Apache License, Version 2.0 (the "License");
    606  * you may not use this file except in compliance with the License.
    607  * You may obtain a copy of the License at
    608  *
    609  * http://www.apache.org/licenses/LICENSE-2.0
    610  *
    611  * Unless required by applicable law or agreed to in writing, software
    612  * distributed under the License is distributed on an "AS IS" BASIS,
    613  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    614  * See the License for the specific language governing permissions and
    615  * limitations under the License.
     664},{"./CSSProperty":5,"./ExecutionEnvironment":23,"./camelizeStyleName":112,"./dangerousStyleValue":119,"./hyphenateStyleName":138,"./memoizeStringOnly":149,"./warning":160}],7:[function(_dereq_,module,exports){
     665/**
     666 * Copyright 2013-2014, Facebook, Inc.
     667 * All rights reserved.
     668 *
     669 * This source code is licensed under the BSD-style license found in the
     670 * LICENSE file in the root directory of this source tree. An additional grant
     671 * of patent rights can be found in the PATENTS file in the same directory.
    616672 *
    617673 * @providesModule CallbackQueue
     
    622678var PooledClass = _dereq_("./PooledClass");
    623679
     680var assign = _dereq_("./Object.assign");
    624681var invariant = _dereq_("./invariant");
    625 var mixInto = _dereq_("./mixInto");
    626682
    627683/**
     
    641697}
    642698
    643 mixInto(CallbackQueue, {
     699assign(CallbackQueue.prototype, {
    644700
    645701  /**
     
    704760module.exports = CallbackQueue;
    705761
    706 },{"./PooledClass":28,"./invariant":134,"./mixInto":147}],7:[function(_dereq_,module,exports){
    707 /**
    708  * Copyright 2013-2014 Facebook, Inc.
    709  *
    710  * Licensed under the Apache License, Version 2.0 (the "License");
    711  * you may not use this file except in compliance with the License.
    712  * You may obtain a copy of the License at
    713  *
    714  * http://www.apache.org/licenses/LICENSE-2.0
    715  *
    716  * Unless required by applicable law or agreed to in writing, software
    717  * distributed under the License is distributed on an "AS IS" BASIS,
    718  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    719  * See the License for the specific language governing permissions and
    720  * limitations under the License.
     762},{"./Object.assign":29,"./PooledClass":30,"./invariant":140}],8:[function(_dereq_,module,exports){
     763/**
     764 * Copyright 2013-2014, Facebook, Inc.
     765 * All rights reserved.
     766 *
     767 * This source code is licensed under the BSD-style license found in the
     768 * LICENSE file in the root directory of this source tree. An additional grant
     769 * of patent rights can be found in the PATENTS file in the same directory.
    721770 *
    722771 * @providesModule ChangeEventPlugin
     
    10931142module.exports = ChangeEventPlugin;
    10941143
    1095 },{"./EventConstants":16,"./EventPluginHub":18,"./EventPropagators":21,"./ExecutionEnvironment":22,"./ReactUpdates":87,"./SyntheticEvent":96,"./isEventSupported":135,"./isTextInputElement":137,"./keyOf":141}],8:[function(_dereq_,module,exports){
    1096 /**
    1097  * Copyright 2013-2014 Facebook, Inc.
    1098  *
    1099  * Licensed under the Apache License, Version 2.0 (the "License");
    1100  * you may not use this file except in compliance with the License.
    1101  * You may obtain a copy of the License at
    1102  *
    1103  * http://www.apache.org/licenses/LICENSE-2.0
    1104  *
    1105  * Unless required by applicable law or agreed to in writing, software
    1106  * distributed under the License is distributed on an "AS IS" BASIS,
    1107  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    1108  * See the License for the specific language governing permissions and
    1109  * limitations under the License.
     1144},{"./EventConstants":17,"./EventPluginHub":19,"./EventPropagators":22,"./ExecutionEnvironment":23,"./ReactUpdates":91,"./SyntheticEvent":99,"./isEventSupported":141,"./isTextInputElement":143,"./keyOf":147}],9:[function(_dereq_,module,exports){
     1145/**
     1146 * Copyright 2013-2014, Facebook, Inc.
     1147 * All rights reserved.
     1148 *
     1149 * This source code is licensed under the BSD-style license found in the
     1150 * LICENSE file in the root directory of this source tree. An additional grant
     1151 * of patent rights can be found in the PATENTS file in the same directory.
    11101152 *
    11111153 * @providesModule ClientReactRootIndex
     
    11251167module.exports = ClientReactRootIndex;
    11261168
    1127 },{}],9:[function(_dereq_,module,exports){
    1128 /**
    1129  * Copyright 2013-2014 Facebook, Inc.
    1130  *
    1131  * Licensed under the Apache License, Version 2.0 (the "License");
    1132  * you may not use this file except in compliance with the License.
    1133  * You may obtain a copy of the License at
    1134  *
    1135  * http://www.apache.org/licenses/LICENSE-2.0
    1136  *
    1137  * Unless required by applicable law or agreed to in writing, software
    1138  * distributed under the License is distributed on an "AS IS" BASIS,
    1139  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    1140  * See the License for the specific language governing permissions and
    1141  * limitations under the License.
     1169},{}],10:[function(_dereq_,module,exports){
     1170/**
     1171 * Copyright 2013-2014, Facebook, Inc.
     1172 * All rights reserved.
     1173 *
     1174 * This source code is licensed under the BSD-style license found in the
     1175 * LICENSE file in the root directory of this source tree. An additional grant
     1176 * of patent rights can be found in the PATENTS file in the same directory.
    11421177 *
    11431178 * @providesModule CompositionEventPlugin
     
    13911426module.exports = CompositionEventPlugin;
    13921427
    1393 },{"./EventConstants":16,"./EventPropagators":21,"./ExecutionEnvironment":22,"./ReactInputSelection":63,"./SyntheticCompositionEvent":94,"./getTextContentAccessor":129,"./keyOf":141}],10:[function(_dereq_,module,exports){
    1394 /**
    1395  * Copyright 2013-2014 Facebook, Inc.
    1396  *
    1397  * Licensed under the Apache License, Version 2.0 (the "License");
    1398  * you may not use this file except in compliance with the License.
    1399  * You may obtain a copy of the License at
    1400  *
    1401  * http://www.apache.org/licenses/LICENSE-2.0
    1402  *
    1403  * Unless required by applicable law or agreed to in writing, software
    1404  * distributed under the License is distributed on an "AS IS" BASIS,
    1405  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    1406  * See the License for the specific language governing permissions and
    1407  * limitations under the License.
     1428},{"./EventConstants":17,"./EventPropagators":22,"./ExecutionEnvironment":23,"./ReactInputSelection":65,"./SyntheticCompositionEvent":97,"./getTextContentAccessor":135,"./keyOf":147}],11:[function(_dereq_,module,exports){
     1429/**
     1430 * Copyright 2013-2014, Facebook, Inc.
     1431 * All rights reserved.
     1432 *
     1433 * This source code is licensed under the BSD-style license found in the
     1434 * LICENSE file in the root directory of this source tree. An additional grant
     1435 * of patent rights can be found in the PATENTS file in the same directory.
    14081436 *
    14091437 * @providesModule DOMChildrenOperations
     
    15131541          'probably means the DOM was unexpectedly mutated (e.g., by the ' +
    15141542          'browser), usually due to forgetting a <tbody> when using tables, ' +
    1515           'nesting <p> or <a> tags, or using non-SVG elements in an <svg> '+
    1516           'parent. Try inspecting the child nodes of the element with React ' +
    1517           'ID `%s`.',
     1543          'nesting tags like <form>, <p>, or <a>, or using non-SVG elements '+
     1544          'in an <svg> parent. Try inspecting the child nodes of the element ' +
     1545          'with React ID `%s`.',
    15181546          updatedIndex,
    15191547          parentID
     
    15711599module.exports = DOMChildrenOperations;
    15721600
    1573 },{"./Danger":13,"./ReactMultiChildUpdateTypes":69,"./getTextContentAccessor":129,"./invariant":134}],11:[function(_dereq_,module,exports){
    1574 /**
    1575  * Copyright 2013-2014 Facebook, Inc.
    1576  *
    1577  * Licensed under the Apache License, Version 2.0 (the "License");
    1578  * you may not use this file except in compliance with the License.
    1579  * You may obtain a copy of the License at
    1580  *
    1581  * http://www.apache.org/licenses/LICENSE-2.0
    1582  *
    1583  * Unless required by applicable law or agreed to in writing, software
    1584  * distributed under the License is distributed on an "AS IS" BASIS,
    1585  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    1586  * See the License for the specific language governing permissions and
    1587  * limitations under the License.
     1601},{"./Danger":14,"./ReactMultiChildUpdateTypes":72,"./getTextContentAccessor":135,"./invariant":140}],12:[function(_dereq_,module,exports){
     1602/**
     1603 * Copyright 2013-2014, Facebook, Inc.
     1604 * All rights reserved.
     1605 *
     1606 * This source code is licensed under the BSD-style license found in the
     1607 * LICENSE file in the root directory of this source tree. An additional grant
     1608 * of patent rights can be found in the PATENTS file in the same directory.
    15881609 *
    15891610 * @providesModule DOMProperty
     
    15961617
    15971618var invariant = _dereq_("./invariant");
     1619
     1620function checkMask(value, bitmask) {
     1621  return (value & bitmask) === bitmask;
     1622}
    15981623
    15991624var DOMPropertyInjection = {
     
    16831708      var propConfig = Properties[propName];
    16841709      DOMProperty.mustUseAttribute[propName] =
    1685         propConfig & DOMPropertyInjection.MUST_USE_ATTRIBUTE;
     1710        checkMask(propConfig, DOMPropertyInjection.MUST_USE_ATTRIBUTE);
    16861711      DOMProperty.mustUseProperty[propName] =
    1687         propConfig & DOMPropertyInjection.MUST_USE_PROPERTY;
     1712        checkMask(propConfig, DOMPropertyInjection.MUST_USE_PROPERTY);
    16881713      DOMProperty.hasSideEffects[propName] =
    1689         propConfig & DOMPropertyInjection.HAS_SIDE_EFFECTS;
     1714        checkMask(propConfig, DOMPropertyInjection.HAS_SIDE_EFFECTS);
    16901715      DOMProperty.hasBooleanValue[propName] =
    1691         propConfig & DOMPropertyInjection.HAS_BOOLEAN_VALUE;
     1716        checkMask(propConfig, DOMPropertyInjection.HAS_BOOLEAN_VALUE);
    16921717      DOMProperty.hasNumericValue[propName] =
    1693         propConfig & DOMPropertyInjection.HAS_NUMERIC_VALUE;
     1718        checkMask(propConfig, DOMPropertyInjection.HAS_NUMERIC_VALUE);
    16941719      DOMProperty.hasPositiveNumericValue[propName] =
    1695         propConfig & DOMPropertyInjection.HAS_POSITIVE_NUMERIC_VALUE;
     1720        checkMask(propConfig, DOMPropertyInjection.HAS_POSITIVE_NUMERIC_VALUE);
    16961721      DOMProperty.hasOverloadedBooleanValue[propName] =
    1697         propConfig & DOMPropertyInjection.HAS_OVERLOADED_BOOLEAN_VALUE;
     1722        checkMask(propConfig, DOMPropertyInjection.HAS_OVERLOADED_BOOLEAN_VALUE);
    16981723
    16991724      ("production" !== "development" ? invariant(
     
    18711896module.exports = DOMProperty;
    18721897
    1873 },{"./invariant":134}],12:[function(_dereq_,module,exports){
    1874 /**
    1875  * Copyright 2013-2014 Facebook, Inc.
    1876  *
    1877  * Licensed under the Apache License, Version 2.0 (the "License");
    1878  * you may not use this file except in compliance with the License.
    1879  * You may obtain a copy of the License at
    1880  *
    1881  * http://www.apache.org/licenses/LICENSE-2.0
    1882  *
    1883  * Unless required by applicable law or agreed to in writing, software
    1884  * distributed under the License is distributed on an "AS IS" BASIS,
    1885  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    1886  * See the License for the specific language governing permissions and
    1887  * limitations under the License.
     1898},{"./invariant":140}],13:[function(_dereq_,module,exports){
     1899/**
     1900 * Copyright 2013-2014, Facebook, Inc.
     1901 * All rights reserved.
     1902 *
     1903 * This source code is licensed under the BSD-style license found in the
     1904 * LICENSE file in the root directory of this source tree. An additional grant
     1905 * of patent rights can be found in the PATENTS file in the same directory.
    18881906 *
    18891907 * @providesModule DOMPropertyOperations
     
    20122030        this.deleteValueForProperty(node, name);
    20132031      } else if (DOMProperty.mustUseAttribute[name]) {
     2032        // `setAttribute` with objects becomes only `[object]` in IE8/9,
     2033        // ('' + value) makes it output the correct toString()-value.
    20142034        node.setAttribute(DOMProperty.getAttributeName[name], '' + value);
    20152035      } else {
    20162036        var propName = DOMProperty.getPropertyName[name];
    2017         if (!DOMProperty.hasSideEffects[name] || node[propName] !== value) {
     2037        // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the
     2038        // property type before comparing; only `value` does and is string.
     2039        if (!DOMProperty.hasSideEffects[name] ||
     2040            ('' + node[propName]) !== ('' + value)) {
     2041          // Contrary to `setAttribute`, object properties are properly
     2042          // `toString`ed by IE8/9.
    20182043          node[propName] = value;
    20192044        }
     
    20512076        );
    20522077        if (!DOMProperty.hasSideEffects[name] ||
    2053             node[propName] !== defaultValue) {
     2078            ('' + node[propName]) !== defaultValue) {
    20542079          node[propName] = defaultValue;
    20552080        }
     
    20662091module.exports = DOMPropertyOperations;
    20672092
    2068 },{"./DOMProperty":11,"./escapeTextForBrowser":118,"./memoizeStringOnly":143,"./warning":158}],13:[function(_dereq_,module,exports){
    2069 /**
    2070  * Copyright 2013-2014 Facebook, Inc.
    2071  *
    2072  * Licensed under the Apache License, Version 2.0 (the "License");
    2073  * you may not use this file except in compliance with the License.
    2074  * You may obtain a copy of the License at
    2075  *
    2076  * http://www.apache.org/licenses/LICENSE-2.0
    2077  *
    2078  * Unless required by applicable law or agreed to in writing, software
    2079  * distributed under the License is distributed on an "AS IS" BASIS,
    2080  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    2081  * See the License for the specific language governing permissions and
    2082  * limitations under the License.
     2093},{"./DOMProperty":12,"./escapeTextForBrowser":123,"./memoizeStringOnly":149,"./warning":160}],14:[function(_dereq_,module,exports){
     2094/**
     2095 * Copyright 2013-2014, Facebook, Inc.
     2096 * All rights reserved.
     2097 *
     2098 * This source code is licensed under the BSD-style license found in the
     2099 * LICENSE file in the root directory of this source tree. An additional grant
     2100 * of patent rights can be found in the PATENTS file in the same directory.
    20832101 *
    20842102 * @providesModule Danger
     
    21292147    ("production" !== "development" ? invariant(
    21302148      ExecutionEnvironment.canUseDOM,
    2131       'dangerouslyRenderMarkup(...): Cannot render markup in a Worker ' +
    2132       'thread. This is likely a bug in the framework. Please report ' +
    2133       'immediately.'
     2149      'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' +
     2150      'thread. Make sure `window` and `document` are available globally ' +
     2151      'before requiring React when unit testing or use ' +
     2152      'React.renderToString for server rendering.'
    21342153    ) : invariant(ExecutionEnvironment.canUseDOM));
    21352154    var nodeName;
     
    22352254      ExecutionEnvironment.canUseDOM,
    22362255      'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a ' +
    2237       'worker thread. This is likely a bug in the framework. Please report ' +
    2238       'immediately.'
     2256      'worker thread. Make sure `window` and `document` are available ' +
     2257      'globally before requiring React when unit testing or use ' +
     2258      'React.renderToString for server rendering.'
    22392259    ) : invariant(ExecutionEnvironment.canUseDOM));
    22402260    ("production" !== "development" ? invariant(markup, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : invariant(markup));
     
    22552275module.exports = Danger;
    22562276
    2257 },{"./ExecutionEnvironment":22,"./createNodesFromMarkup":113,"./emptyFunction":116,"./getMarkupWrap":126,"./invariant":134}],14:[function(_dereq_,module,exports){
    2258 /**
    2259  * Copyright 2013-2014 Facebook, Inc.
    2260  *
    2261  * Licensed under the Apache License, Version 2.0 (the "License");
    2262  * you may not use this file except in compliance with the License.
    2263  * You may obtain a copy of the License at
    2264  *
    2265  * http://www.apache.org/licenses/LICENSE-2.0
    2266  *
    2267  * Unless required by applicable law or agreed to in writing, software
    2268  * distributed under the License is distributed on an "AS IS" BASIS,
    2269  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    2270  * See the License for the specific language governing permissions and
    2271  * limitations under the License.
     2277},{"./ExecutionEnvironment":23,"./createNodesFromMarkup":117,"./emptyFunction":121,"./getMarkupWrap":132,"./invariant":140}],15:[function(_dereq_,module,exports){
     2278/**
     2279 * Copyright 2013-2014, Facebook, Inc.
     2280 * All rights reserved.
     2281 *
     2282 * This source code is licensed under the BSD-style license found in the
     2283 * LICENSE file in the root directory of this source tree. An additional grant
     2284 * of patent rights can be found in the PATENTS file in the same directory.
    22722285 *
    22732286 * @providesModule DefaultEventPluginOrder
     
    23022315module.exports = DefaultEventPluginOrder;
    23032316
    2304 },{"./keyOf":141}],15:[function(_dereq_,module,exports){
    2305 /**
    2306  * Copyright 2013-2014 Facebook, Inc.
    2307  *
    2308  * Licensed under the Apache License, Version 2.0 (the "License");
    2309  * you may not use this file except in compliance with the License.
    2310  * You may obtain a copy of the License at
    2311  *
    2312  * http://www.apache.org/licenses/LICENSE-2.0
    2313  *
    2314  * Unless required by applicable law or agreed to in writing, software
    2315  * distributed under the License is distributed on an "AS IS" BASIS,
    2316  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    2317  * See the License for the specific language governing permissions and
    2318  * limitations under the License.
     2317},{"./keyOf":147}],16:[function(_dereq_,module,exports){
     2318/**
     2319 * Copyright 2013-2014, Facebook, Inc.
     2320 * All rights reserved.
     2321 *
     2322 * This source code is licensed under the BSD-style license found in the
     2323 * LICENSE file in the root directory of this source tree. An additional grant
     2324 * of patent rights can be found in the PATENTS file in the same directory.
    23192325 *
    23202326 * @providesModule EnterLeaveEventPlugin
     
    24492455module.exports = EnterLeaveEventPlugin;
    24502456
    2451 },{"./EventConstants":16,"./EventPropagators":21,"./ReactMount":67,"./SyntheticMouseEvent":100,"./keyOf":141}],16:[function(_dereq_,module,exports){
    2452 /**
    2453  * Copyright 2013-2014 Facebook, Inc.
    2454  *
    2455  * Licensed under the Apache License, Version 2.0 (the "License");
    2456  * you may not use this file except in compliance with the License.
    2457  * You may obtain a copy of the License at
    2458  *
    2459  * http://www.apache.org/licenses/LICENSE-2.0
    2460  *
    2461  * Unless required by applicable law or agreed to in writing, software
    2462  * distributed under the License is distributed on an "AS IS" BASIS,
    2463  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    2464  * See the License for the specific language governing permissions and
    2465  * limitations under the License.
     2457},{"./EventConstants":17,"./EventPropagators":22,"./ReactMount":70,"./SyntheticMouseEvent":103,"./keyOf":147}],17:[function(_dereq_,module,exports){
     2458/**
     2459 * Copyright 2013-2014, Facebook, Inc.
     2460 * All rights reserved.
     2461 *
     2462 * This source code is licensed under the BSD-style license found in the
     2463 * LICENSE file in the root directory of this source tree. An additional grant
     2464 * of patent rights can be found in the PATENTS file in the same directory.
    24662465 *
    24672466 * @providesModule EventConstants
     
    25282527module.exports = EventConstants;
    25292528
    2530 },{"./keyMirror":140}],17:[function(_dereq_,module,exports){
    2531 /**
     2529},{"./keyMirror":146}],18:[function(_dereq_,module,exports){
     2530/**
     2531 * Copyright 2013-2014 Facebook, Inc.
     2532 *
     2533 * Licensed under the Apache License, Version 2.0 (the "License");
     2534 * you may not use this file except in compliance with the License.
     2535 * You may obtain a copy of the License at
     2536 *
     2537 * http://www.apache.org/licenses/LICENSE-2.0
     2538 *
     2539 * Unless required by applicable law or agreed to in writing, software
     2540 * distributed under the License is distributed on an "AS IS" BASIS,
     2541 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     2542 * See the License for the specific language governing permissions and
     2543 * limitations under the License.
     2544 *
    25322545 * @providesModule EventListener
    25332546 * @typechecks
     
    26022615module.exports = EventListener;
    26032616
    2604 },{"./emptyFunction":116}],18:[function(_dereq_,module,exports){
    2605 /**
    2606  * Copyright 2013-2014 Facebook, Inc.
    2607  *
    2608  * Licensed under the Apache License, Version 2.0 (the "License");
    2609  * you may not use this file except in compliance with the License.
    2610  * You may obtain a copy of the License at
    2611  *
    2612  * http://www.apache.org/licenses/LICENSE-2.0
    2613  *
    2614  * Unless required by applicable law or agreed to in writing, software
    2615  * distributed under the License is distributed on an "AS IS" BASIS,
    2616  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    2617  * See the License for the specific language governing permissions and
    2618  * limitations under the License.
     2617},{"./emptyFunction":121}],19:[function(_dereq_,module,exports){
     2618/**
     2619 * Copyright 2013-2014, Facebook, Inc.
     2620 * All rights reserved.
     2621 *
     2622 * This source code is licensed under the BSD-style license found in the
     2623 * LICENSE file in the root directory of this source tree. An additional grant
     2624 * of patent rights can be found in the PATENTS file in the same directory.
    26192625 *
    26202626 * @providesModule EventPluginHub
     
    26262632var EventPluginUtils = _dereq_("./EventPluginUtils");
    26272633
    2628 var accumulate = _dereq_("./accumulate");
     2634var accumulateInto = _dereq_("./accumulateInto");
    26292635var forEachAccumulated = _dereq_("./forEachAccumulated");
    26302636var invariant = _dereq_("./invariant");
    2631 var isEventSupported = _dereq_("./isEventSupported");
    2632 var monitorCodeUse = _dereq_("./monitorCodeUse");
    26332637
    26342638/**
     
    27642768    ) : invariant(!listener || typeof listener === 'function'));
    27652769
    2766     if ("production" !== "development") {
    2767       // IE8 has no API for event capturing and the `onScroll` event doesn't
    2768       // bubble.
    2769       if (registrationName === 'onScroll' &&
    2770           !isEventSupported('scroll', true)) {
    2771         monitorCodeUse('react_no_scroll_event');
    2772         console.warn('This browser doesn\'t support the `onScroll` event');
    2773       }
    2774     }
    27752770    var bankForRegistrationName =
    27762771      listenerBank[registrationName] || (listenerBank[registrationName] = {});
     
    28412836        );
    28422837        if (extractedEvents) {
    2843           events = accumulate(events, extractedEvents);
     2838          events = accumulateInto(events, extractedEvents);
    28442839        }
    28452840      }
     
    28572852  enqueueEvents: function(events) {
    28582853    if (events) {
    2859       eventQueue = accumulate(eventQueue, events);
     2854      eventQueue = accumulateInto(eventQueue, events);
    28602855    }
    28612856  },
     
    28942889module.exports = EventPluginHub;
    28952890
    2896 },{"./EventPluginRegistry":19,"./EventPluginUtils":20,"./accumulate":106,"./forEachAccumulated":121,"./invariant":134,"./isEventSupported":135,"./monitorCodeUse":148}],19:[function(_dereq_,module,exports){
    2897 /**
    2898  * Copyright 2013-2014 Facebook, Inc.
    2899  *
    2900  * Licensed under the Apache License, Version 2.0 (the "License");
    2901  * you may not use this file except in compliance with the License.
    2902  * You may obtain a copy of the License at
    2903  *
    2904  * http://www.apache.org/licenses/LICENSE-2.0
    2905  *
    2906  * Unless required by applicable law or agreed to in writing, software
    2907  * distributed under the License is distributed on an "AS IS" BASIS,
    2908  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    2909  * See the License for the specific language governing permissions and
    2910  * limitations under the License.
     2891},{"./EventPluginRegistry":20,"./EventPluginUtils":21,"./accumulateInto":109,"./forEachAccumulated":126,"./invariant":140}],20:[function(_dereq_,module,exports){
     2892/**
     2893 * Copyright 2013-2014, Facebook, Inc.
     2894 * All rights reserved.
     2895 *
     2896 * This source code is licensed under the BSD-style license found in the
     2897 * LICENSE file in the root directory of this source tree. An additional grant
     2898 * of patent rights can be found in the PATENTS file in the same directory.
    29112899 *
    29122900 * @providesModule EventPluginRegistry
     
    31793167module.exports = EventPluginRegistry;
    31803168
    3181 },{"./invariant":134}],20:[function(_dereq_,module,exports){
    3182 /**
    3183  * Copyright 2013-2014 Facebook, Inc.
    3184  *
    3185  * Licensed under the Apache License, Version 2.0 (the "License");
    3186  * you may not use this file except in compliance with the License.
    3187  * You may obtain a copy of the License at
    3188  *
    3189  * http://www.apache.org/licenses/LICENSE-2.0
    3190  *
    3191  * Unless required by applicable law or agreed to in writing, software
    3192  * distributed under the License is distributed on an "AS IS" BASIS,
    3193  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    3194  * See the License for the specific language governing permissions and
    3195  * limitations under the License.
     3169},{"./invariant":140}],21:[function(_dereq_,module,exports){
     3170/**
     3171 * Copyright 2013-2014, Facebook, Inc.
     3172 * All rights reserved.
     3173 *
     3174 * This source code is licensed under the BSD-style license found in the
     3175 * LICENSE file in the root directory of this source tree. An additional grant
     3176 * of patent rights can be found in the PATENTS file in the same directory.
    31963177 *
    31973178 * @providesModule EventPluginUtils
     
    34053386module.exports = EventPluginUtils;
    34063387
    3407 },{"./EventConstants":16,"./invariant":134}],21:[function(_dereq_,module,exports){
    3408 /**
    3409  * Copyright 2013-2014 Facebook, Inc.
    3410  *
    3411  * Licensed under the Apache License, Version 2.0 (the "License");
    3412  * you may not use this file except in compliance with the License.
    3413  * You may obtain a copy of the License at
    3414  *
    3415  * http://www.apache.org/licenses/LICENSE-2.0
    3416  *
    3417  * Unless required by applicable law or agreed to in writing, software
    3418  * distributed under the License is distributed on an "AS IS" BASIS,
    3419  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    3420  * See the License for the specific language governing permissions and
    3421  * limitations under the License.
     3388},{"./EventConstants":17,"./invariant":140}],22:[function(_dereq_,module,exports){
     3389/**
     3390 * Copyright 2013-2014, Facebook, Inc.
     3391 * All rights reserved.
     3392 *
     3393 * This source code is licensed under the BSD-style license found in the
     3394 * LICENSE file in the root directory of this source tree. An additional grant
     3395 * of patent rights can be found in the PATENTS file in the same directory.
    34223396 *
    34233397 * @providesModule EventPropagators
     
    34293403var EventPluginHub = _dereq_("./EventPluginHub");
    34303404
    3431 var accumulate = _dereq_("./accumulate");
     3405var accumulateInto = _dereq_("./accumulateInto");
    34323406var forEachAccumulated = _dereq_("./forEachAccumulated");
    34333407
     
    34603434  var listener = listenerAtPhase(domID, event, phase);
    34613435  if (listener) {
    3462     event._dispatchListeners = accumulate(event._dispatchListeners, listener);
    3463     event._dispatchIDs = accumulate(event._dispatchIDs, domID);
     3436    event._dispatchListeners =
     3437      accumulateInto(event._dispatchListeners, listener);
     3438    event._dispatchIDs = accumulateInto(event._dispatchIDs, domID);
    34643439  }
    34653440}
     
    34933468    var listener = getListener(id, registrationName);
    34943469    if (listener) {
    3495       event._dispatchListeners = accumulate(event._dispatchListeners, listener);
    3496       event._dispatchIDs = accumulate(event._dispatchIDs, id);
     3470      event._dispatchListeners =
     3471        accumulateInto(event._dispatchListeners, listener);
     3472      event._dispatchIDs = accumulateInto(event._dispatchIDs, id);
    34973473    }
    34983474  }
     
    35503526module.exports = EventPropagators;
    35513527
    3552 },{"./EventConstants":16,"./EventPluginHub":18,"./accumulate":106,"./forEachAccumulated":121}],22:[function(_dereq_,module,exports){
    3553 /**
    3554  * Copyright 2013-2014 Facebook, Inc.
    3555  *
    3556  * Licensed under the Apache License, Version 2.0 (the "License");
    3557  * you may not use this file except in compliance with the License.
    3558  * You may obtain a copy of the License at
    3559  *
    3560  * http://www.apache.org/licenses/LICENSE-2.0
    3561  *
    3562  * Unless required by applicable law or agreed to in writing, software
    3563  * distributed under the License is distributed on an "AS IS" BASIS,
    3564  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    3565  * See the License for the specific language governing permissions and
    3566  * limitations under the License.
     3528},{"./EventConstants":17,"./EventPluginHub":19,"./accumulateInto":109,"./forEachAccumulated":126}],23:[function(_dereq_,module,exports){
     3529/**
     3530 * Copyright 2013-2014, Facebook, Inc.
     3531 * All rights reserved.
     3532 *
     3533 * This source code is licensed under the BSD-style license found in the
     3534 * LICENSE file in the root directory of this source tree. An additional grant
     3535 * of patent rights can be found in the PATENTS file in the same directory.
    35673536 *
    35683537 * @providesModule ExecutionEnvironment
     
    36023571module.exports = ExecutionEnvironment;
    36033572
    3604 },{}],23:[function(_dereq_,module,exports){
    3605 /**
    3606  * Copyright 2013-2014 Facebook, Inc.
    3607  *
    3608  * Licensed under the Apache License, Version 2.0 (the "License");
    3609  * you may not use this file except in compliance with the License.
    3610  * You may obtain a copy of the License at
    3611  *
    3612  * http://www.apache.org/licenses/LICENSE-2.0
    3613  *
    3614  * Unless required by applicable law or agreed to in writing, software
    3615  * distributed under the License is distributed on an "AS IS" BASIS,
    3616  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    3617  * See the License for the specific language governing permissions and
    3618  * limitations under the License.
     3573},{}],24:[function(_dereq_,module,exports){
     3574/**
     3575 * Copyright 2013-2014, Facebook, Inc.
     3576 * All rights reserved.
     3577 *
     3578 * This source code is licensed under the BSD-style license found in the
     3579 * LICENSE file in the root directory of this source tree. An additional grant
     3580 * of patent rights can be found in the PATENTS file in the same directory.
    36193581 *
    36203582 * @providesModule HTMLDOMPropertyConfig
     
    36613623     */
    36623624    accept: null,
     3625    acceptCharset: null,
    36633626    accessKey: null,
    36643627    action: null,
     
    36753638    charSet: MUST_USE_ATTRIBUTE,
    36763639    checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
     3640    classID: MUST_USE_ATTRIBUTE,
    36773641    // To set className on SVG elements, it's necessary to use .setAttribute;
    36783642    // this works on HTML elements too in all browsers except IE8. Conveniently,
     
    37103674    label: null,
    37113675    lang: null,
    3712     list: null,
     3676    list: MUST_USE_ATTRIBUTE,
    37133677    loop: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
     3678    manifest: MUST_USE_ATTRIBUTE,
    37143679    max: null,
    37153680    maxLength: MUST_USE_ATTRIBUTE,
     
    37363701    sandbox: null,
    37373702    scope: null,
    3738     scrollLeft: MUST_USE_PROPERTY,
    37393703    scrolling: null,
    3740     scrollTop: MUST_USE_PROPERTY,
    37413704    seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,
    37423705    selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
     
    37723735  },
    37733736  DOMAttributeNames: {
     3737    acceptCharset: 'accept-charset',
    37743738    className: 'class',
    37753739    htmlFor: 'for',
     
    37933757module.exports = HTMLDOMPropertyConfig;
    37943758
    3795 },{"./DOMProperty":11,"./ExecutionEnvironment":22}],24:[function(_dereq_,module,exports){
    3796 /**
    3797  * Copyright 2013-2014 Facebook, Inc.
    3798  *
    3799  * Licensed under the Apache License, Version 2.0 (the "License");
    3800  * you may not use this file except in compliance with the License.
    3801  * You may obtain a copy of the License at
    3802  *
    3803  * http://www.apache.org/licenses/LICENSE-2.0
    3804  *
    3805  * Unless required by applicable law or agreed to in writing, software
    3806  * distributed under the License is distributed on an "AS IS" BASIS,
    3807  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    3808  * See the License for the specific language governing permissions and
    3809  * limitations under the License.
     3759},{"./DOMProperty":12,"./ExecutionEnvironment":23}],25:[function(_dereq_,module,exports){
     3760/**
     3761 * Copyright 2013-2014, Facebook, Inc.
     3762 * All rights reserved.
     3763 *
     3764 * This source code is licensed under the BSD-style license found in the
     3765 * LICENSE file in the root directory of this source tree. An additional grant
     3766 * of patent rights can be found in the PATENTS file in the same directory.
    38103767 *
    38113768 * @providesModule LinkedStateMixin
     
    38413798module.exports = LinkedStateMixin;
    38423799
    3843 },{"./ReactLink":65,"./ReactStateSetters":81}],25:[function(_dereq_,module,exports){
    3844 /**
    3845  * Copyright 2013-2014 Facebook, Inc.
    3846  *
    3847  * Licensed under the Apache License, Version 2.0 (the "License");
    3848  * you may not use this file except in compliance with the License.
    3849  * You may obtain a copy of the License at
    3850  *
    3851  * http://www.apache.org/licenses/LICENSE-2.0
    3852  *
    3853  * Unless required by applicable law or agreed to in writing, software
    3854  * distributed under the License is distributed on an "AS IS" BASIS,
    3855  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    3856  * See the License for the specific language governing permissions and
    3857  * limitations under the License.
     3800},{"./ReactLink":68,"./ReactStateSetters":85}],26:[function(_dereq_,module,exports){
     3801/**
     3802 * Copyright 2013-2014, Facebook, Inc.
     3803 * All rights reserved.
     3804 *
     3805 * This source code is licensed under the BSD-style license found in the
     3806 * LICENSE file in the root directory of this source tree. An additional grant
     3807 * of patent rights can be found in the PATENTS file in the same directory.
    38583808 *
    38593809 * @providesModule LinkedValueUtils
     
    40023952module.exports = LinkedValueUtils;
    40033953
    4004 },{"./ReactPropTypes":75,"./invariant":134}],26:[function(_dereq_,module,exports){
    4005 /**
    4006  * Copyright 2014 Facebook, Inc.
    4007  *
    4008  * Licensed under the Apache License, Version 2.0 (the "License");
    4009  * you may not use this file except in compliance with the License.
    4010  * You may obtain a copy of the License at
    4011  *
    4012  * http://www.apache.org/licenses/LICENSE-2.0
    4013  *
    4014  * Unless required by applicable law or agreed to in writing, software
    4015  * distributed under the License is distributed on an "AS IS" BASIS,
    4016  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    4017  * See the License for the specific language governing permissions and
    4018  * limitations under the License.
     3954},{"./ReactPropTypes":79,"./invariant":140}],27:[function(_dereq_,module,exports){
     3955/**
     3956 * Copyright 2014, Facebook, Inc.
     3957 * All rights reserved.
     3958 *
     3959 * This source code is licensed under the BSD-style license found in the
     3960 * LICENSE file in the root directory of this source tree. An additional grant
     3961 * of patent rights can be found in the PATENTS file in the same directory.
    40193962 *
    40203963 * @providesModule LocalEventTrapMixin
     
    40253968var ReactBrowserEventEmitter = _dereq_("./ReactBrowserEventEmitter");
    40263969
    4027 var accumulate = _dereq_("./accumulate");
     3970var accumulateInto = _dereq_("./accumulateInto");
    40283971var forEachAccumulated = _dereq_("./forEachAccumulated");
    40293972var invariant = _dereq_("./invariant");
     
    40413984      this.getDOMNode()
    40423985    );
    4043     this._localEventListeners = accumulate(this._localEventListeners, listener);
     3986    this._localEventListeners =
     3987      accumulateInto(this._localEventListeners, listener);
    40443988  },
    40453989
     
    40564000module.exports = LocalEventTrapMixin;
    40574001
    4058 },{"./ReactBrowserEventEmitter":31,"./accumulate":106,"./forEachAccumulated":121,"./invariant":134}],27:[function(_dereq_,module,exports){
    4059 /**
    4060  * Copyright 2013-2014 Facebook, Inc.
    4061  *
    4062  * Licensed under the Apache License, Version 2.0 (the "License");
    4063  * you may not use this file except in compliance with the License.
    4064  * You may obtain a copy of the License at
    4065  *
    4066  * http://www.apache.org/licenses/LICENSE-2.0
    4067  *
    4068  * Unless required by applicable law or agreed to in writing, software
    4069  * distributed under the License is distributed on an "AS IS" BASIS,
    4070  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    4071  * See the License for the specific language governing permissions and
    4072  * limitations under the License.
     4002},{"./ReactBrowserEventEmitter":33,"./accumulateInto":109,"./forEachAccumulated":126,"./invariant":140}],28:[function(_dereq_,module,exports){
     4003/**
     4004 * Copyright 2013-2014, Facebook, Inc.
     4005 * All rights reserved.
     4006 *
     4007 * This source code is licensed under the BSD-style license found in the
     4008 * LICENSE file in the root directory of this source tree. An additional grant
     4009 * of patent rights can be found in the PATENTS file in the same directory.
    40734010 *
    40744011 * @providesModule MobileSafariClickEventPlugin
     
    41214058module.exports = MobileSafariClickEventPlugin;
    41224059
    4123 },{"./EventConstants":16,"./emptyFunction":116}],28:[function(_dereq_,module,exports){
    4124 /**
    4125  * Copyright 2013-2014 Facebook, Inc.
    4126  *
    4127  * Licensed under the Apache License, Version 2.0 (the "License");
    4128  * you may not use this file except in compliance with the License.
    4129  * You may obtain a copy of the License at
    4130  *
    4131  * http://www.apache.org/licenses/LICENSE-2.0
    4132  *
    4133  * Unless required by applicable law or agreed to in writing, software
    4134  * distributed under the License is distributed on an "AS IS" BASIS,
    4135  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    4136  * See the License for the specific language governing permissions and
    4137  * limitations under the License.
     4060},{"./EventConstants":17,"./emptyFunction":121}],29:[function(_dereq_,module,exports){
     4061/**
     4062 * Copyright 2014, Facebook, Inc.
     4063 * All rights reserved.
     4064 *
     4065 * This source code is licensed under the BSD-style license found in the
     4066 * LICENSE file in the root directory of this source tree. An additional grant
     4067 * of patent rights can be found in the PATENTS file in the same directory.
     4068 *
     4069 * @providesModule Object.assign
     4070 */
     4071
     4072// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign
     4073
     4074function assign(target, sources) {
     4075  if (target == null) {
     4076    throw new TypeError('Object.assign target cannot be null or undefined');
     4077  }
     4078
     4079  var to = Object(target);
     4080  var hasOwnProperty = Object.prototype.hasOwnProperty;
     4081
     4082  for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {
     4083    var nextSource = arguments[nextIndex];
     4084    if (nextSource == null) {
     4085      continue;
     4086    }
     4087
     4088    var from = Object(nextSource);
     4089
     4090    // We don't currently support accessors nor proxies. Therefore this
     4091    // copy cannot throw. If we ever supported this then we must handle
     4092    // exceptions and side-effects. We don't support symbols so they won't
     4093    // be transferred.
     4094
     4095    for (var key in from) {
     4096      if (hasOwnProperty.call(from, key)) {
     4097        to[key] = from[key];
     4098      }
     4099    }
     4100  }
     4101
     4102  return to;
     4103};
     4104
     4105module.exports = assign;
     4106
     4107},{}],30:[function(_dereq_,module,exports){
     4108/**
     4109 * Copyright 2013-2014, Facebook, Inc.
     4110 * All rights reserved.
     4111 *
     4112 * This source code is licensed under the BSD-style license found in the
     4113 * LICENSE file in the root directory of this source tree. An additional grant
     4114 * of patent rights can be found in the PATENTS file in the same directory.
    41384115 *
    41394116 * @providesModule PooledClass
     
    42424219module.exports = PooledClass;
    42434220
    4244 },{"./invariant":134}],29:[function(_dereq_,module,exports){
    4245 /**
    4246  * Copyright 2013-2014 Facebook, Inc.
    4247  *
    4248  * Licensed under the Apache License, Version 2.0 (the "License");
    4249  * you may not use this file except in compliance with the License.
    4250  * You may obtain a copy of the License at
    4251  *
    4252  * http://www.apache.org/licenses/LICENSE-2.0
    4253  *
    4254  * Unless required by applicable law or agreed to in writing, software
    4255  * distributed under the License is distributed on an "AS IS" BASIS,
    4256  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    4257  * See the License for the specific language governing permissions and
    4258  * limitations under the License.
     4221},{"./invariant":140}],31:[function(_dereq_,module,exports){
     4222/**
     4223 * Copyright 2013-2014, Facebook, Inc.
     4224 * All rights reserved.
     4225 *
     4226 * This source code is licensed under the BSD-style license found in the
     4227 * LICENSE file in the root directory of this source tree. An additional grant
     4228 * of patent rights can be found in the PATENTS file in the same directory.
    42594229 *
    42604230 * @providesModule React
     
    42704240var ReactContext = _dereq_("./ReactContext");
    42714241var ReactCurrentOwner = _dereq_("./ReactCurrentOwner");
    4272 var ReactDescriptor = _dereq_("./ReactDescriptor");
     4242var ReactElement = _dereq_("./ReactElement");
     4243var ReactElementValidator = _dereq_("./ReactElementValidator");
    42734244var ReactDOM = _dereq_("./ReactDOM");
    42744245var ReactDOMComponent = _dereq_("./ReactDOMComponent");
    42754246var ReactDefaultInjection = _dereq_("./ReactDefaultInjection");
    42764247var ReactInstanceHandles = _dereq_("./ReactInstanceHandles");
     4248var ReactLegacyElement = _dereq_("./ReactLegacyElement");
    42774249var ReactMount = _dereq_("./ReactMount");
    42784250var ReactMultiChild = _dereq_("./ReactMultiChild");
     
    42824254var ReactTextComponent = _dereq_("./ReactTextComponent");
    42834255
     4256var assign = _dereq_("./Object.assign");
     4257var deprecated = _dereq_("./deprecated");
    42844258var onlyChild = _dereq_("./onlyChild");
    4285 var warning = _dereq_("./warning");
    42864259
    42874260ReactDefaultInjection.inject();
    42884261
    4289 // Specifying arguments isn't necessary since we just use apply anyway, but it
    4290 // makes it clear for those actually consuming this API.
    4291 function createDescriptor(type, props, children) {
    4292   var args = Array.prototype.slice.call(arguments, 1);
    4293   return type.apply(null, args);
    4294 }
     4262var createElement = ReactElement.createElement;
     4263var createFactory = ReactElement.createFactory;
    42954264
    42964265if ("production" !== "development") {
    4297   var _warnedForDeprecation = false;
    4298 }
     4266  createElement = ReactElementValidator.createElement;
     4267  createFactory = ReactElementValidator.createFactory;
     4268}
     4269
     4270// TODO: Drop legacy elements once classes no longer export these factories
     4271createElement = ReactLegacyElement.wrapCreateElement(
     4272  createElement
     4273);
     4274createFactory = ReactLegacyElement.wrapCreateFactory(
     4275  createFactory
     4276);
     4277
     4278var render = ReactPerf.measure('React', 'render', ReactMount.render);
    42994279
    43004280var React = {
     
    43114291  },
    43124292  createClass: ReactCompositeComponent.createClass,
    4313   createDescriptor: function() {
    4314     if ("production" !== "development") {
    4315       ("production" !== "development" ? warning(
    4316         _warnedForDeprecation,
    4317         'React.createDescriptor is deprecated and will be removed in the ' +
    4318         'next version of React. Use React.createElement instead.'
    4319       ) : null);
    4320       _warnedForDeprecation = true;
    4321     }
    4322     return createDescriptor.apply(this, arguments);
    4323   },
    4324   createElement: createDescriptor,
     4293  createElement: createElement,
     4294  createFactory: createFactory,
    43254295  constructAndRenderComponent: ReactMount.constructAndRenderComponent,
    43264296  constructAndRenderComponentByID: ReactMount.constructAndRenderComponentByID,
    4327   renderComponent: ReactPerf.measure(
     4297  render: render,
     4298  renderToString: ReactServerRendering.renderToString,
     4299  renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup,
     4300  unmountComponentAtNode: ReactMount.unmountComponentAtNode,
     4301  isValidClass: ReactLegacyElement.isValidClass,
     4302  isValidElement: ReactElement.isValidElement,
     4303  withContext: ReactContext.withContext,
     4304
     4305  // Hook for JSX spread, don't use this for anything else.
     4306  __spread: assign,
     4307
     4308  // Deprecations (remove for 0.13)
     4309  renderComponent: deprecated(
    43284310    'React',
    43294311    'renderComponent',
    4330     ReactMount.renderComponent
     4312    'render',
     4313    this,
     4314    render
    43314315  ),
    4332   renderComponentToString: ReactServerRendering.renderComponentToString,
    4333   renderComponentToStaticMarkup:
    4334     ReactServerRendering.renderComponentToStaticMarkup,
    4335   unmountComponentAtNode: ReactMount.unmountComponentAtNode,
    4336   isValidClass: ReactDescriptor.isValidFactory,
    4337   isValidComponent: ReactDescriptor.isValidDescriptor,
    4338   withContext: ReactContext.withContext,
    4339   __internals: {
     4316  renderComponentToString: deprecated(
     4317    'React',
     4318    'renderComponentToString',
     4319    'renderToString',
     4320    this,
     4321    ReactServerRendering.renderToString
     4322  ),
     4323  renderComponentToStaticMarkup: deprecated(
     4324    'React',
     4325    'renderComponentToStaticMarkup',
     4326    'renderToStaticMarkup',
     4327    this,
     4328    ReactServerRendering.renderToStaticMarkup
     4329  ),
     4330  isValidComponent: deprecated(
     4331    'React',
     4332    'isValidComponent',
     4333    'isValidElement',
     4334    this,
     4335    ReactElement.isValidElement
     4336  )
     4337};
     4338
     4339// Inject the runtime into a devtools global hook regardless of browser.
     4340// Allows for debugging when the hook is injected on the page.
     4341if (
     4342  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
     4343  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {
     4344  __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({
    43404345    Component: ReactComponent,
    43414346    CurrentOwner: ReactCurrentOwner,
     
    43464351    MultiChild: ReactMultiChild,
    43474352    TextComponent: ReactTextComponent
    4348   }
    4349 };
     4353  });
     4354}
    43504355
    43514356if ("production" !== "development") {
    43524357  var ExecutionEnvironment = _dereq_("./ExecutionEnvironment");
    4353   if (ExecutionEnvironment.canUseDOM &&
    4354       window.top === window.self &&
    4355       navigator.userAgent.indexOf('Chrome') > -1) {
    4356     console.debug(
    4357       'Download the React DevTools for a better development experience: ' +
    4358       'http://fb.me/react-devtools'
    4359     );
     4358  if (ExecutionEnvironment.canUseDOM && window.top === window.self) {
     4359
     4360    // If we're in Chrome, look for the devtools marker and provide a download
     4361    // link if not installed.
     4362    if (navigator.userAgent.indexOf('Chrome') > -1) {
     4363      if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {
     4364        console.debug(
     4365          'Download the React DevTools for a better development experience: ' +
     4366          'http://fb.me/react-devtools'
     4367        );
     4368      }
     4369    }
    43604370
    43614371    var expectedFeatures = [
     
    43774387    ];
    43784388
    4379     for (var i in expectedFeatures) {
     4389    for (var i = 0; i < expectedFeatures.length; i++) {
    43804390      if (!expectedFeatures[i]) {
    43814391        console.error(
     
    43914401// Version exists only in the open-source version of React, not in Facebook's
    43924402// internal version.
    4393 React.version = '0.11.2';
     4403React.version = '0.12.0';
    43944404
    43954405module.exports = React;
    43964406
    4397 },{"./DOMPropertyOperations":12,"./EventPluginUtils":20,"./ExecutionEnvironment":22,"./ReactChildren":34,"./ReactComponent":35,"./ReactCompositeComponent":38,"./ReactContext":39,"./ReactCurrentOwner":40,"./ReactDOM":41,"./ReactDOMComponent":43,"./ReactDefaultInjection":53,"./ReactDescriptor":56,"./ReactInstanceHandles":64,"./ReactMount":67,"./ReactMultiChild":68,"./ReactPerf":71,"./ReactPropTypes":75,"./ReactServerRendering":79,"./ReactTextComponent":83,"./onlyChild":149,"./warning":158}],30:[function(_dereq_,module,exports){
    4398 /**
    4399  * Copyright 2013-2014 Facebook, Inc.
    4400  *
    4401  * Licensed under the Apache License, Version 2.0 (the "License");
    4402  * you may not use this file except in compliance with the License.
    4403  * You may obtain a copy of the License at
    4404  *
    4405  * http://www.apache.org/licenses/LICENSE-2.0
    4406  *
    4407  * Unless required by applicable law or agreed to in writing, software
    4408  * distributed under the License is distributed on an "AS IS" BASIS,
    4409  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    4410  * See the License for the specific language governing permissions and
    4411  * limitations under the License.
     4407},{"./DOMPropertyOperations":13,"./EventPluginUtils":21,"./ExecutionEnvironment":23,"./Object.assign":29,"./ReactChildren":36,"./ReactComponent":37,"./ReactCompositeComponent":40,"./ReactContext":41,"./ReactCurrentOwner":42,"./ReactDOM":43,"./ReactDOMComponent":45,"./ReactDefaultInjection":55,"./ReactElement":58,"./ReactElementValidator":59,"./ReactInstanceHandles":66,"./ReactLegacyElement":67,"./ReactMount":70,"./ReactMultiChild":71,"./ReactPerf":75,"./ReactPropTypes":79,"./ReactServerRendering":83,"./ReactTextComponent":87,"./deprecated":120,"./onlyChild":151}],32:[function(_dereq_,module,exports){
     4408/**
     4409 * Copyright 2013-2014, Facebook, Inc.
     4410 * All rights reserved.
     4411 *
     4412 * This source code is licensed under the BSD-style license found in the
     4413 * LICENSE file in the root directory of this source tree. An additional grant
     4414 * of patent rights can be found in the PATENTS file in the same directory.
    44124415 *
    44134416 * @providesModule ReactBrowserComponentMixin
     
    44434446module.exports = ReactBrowserComponentMixin;
    44444447
    4445 },{"./ReactEmptyComponent":58,"./ReactMount":67,"./invariant":134}],31:[function(_dereq_,module,exports){
    4446 /**
    4447  * Copyright 2013-2014 Facebook, Inc.
    4448  *
    4449  * Licensed under the Apache License, Version 2.0 (the "License");
    4450  * you may not use this file except in compliance with the License.
    4451  * You may obtain a copy of the License at
    4452  *
    4453  * http://www.apache.org/licenses/LICENSE-2.0
    4454  *
    4455  * Unless required by applicable law or agreed to in writing, software
    4456  * distributed under the License is distributed on an "AS IS" BASIS,
    4457  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    4458  * See the License for the specific language governing permissions and
    4459  * limitations under the License.
     4448},{"./ReactEmptyComponent":60,"./ReactMount":70,"./invariant":140}],33:[function(_dereq_,module,exports){
     4449/**
     4450 * Copyright 2013-2014, Facebook, Inc.
     4451 * All rights reserved.
     4452 *
     4453 * This source code is licensed under the BSD-style license found in the
     4454 * LICENSE file in the root directory of this source tree. An additional grant
     4455 * of patent rights can be found in the PATENTS file in the same directory.
    44604456 *
    44614457 * @providesModule ReactBrowserEventEmitter
     
    44714467var ViewportMetrics = _dereq_("./ViewportMetrics");
    44724468
     4469var assign = _dereq_("./Object.assign");
    44734470var isEventSupported = _dereq_("./isEventSupported");
    4474 var merge = _dereq_("./merge");
    44754471
    44764472/**
     
    46014597 * @internal
    46024598 */
    4603 var ReactBrowserEventEmitter = merge(ReactEventEmitterMixin, {
     4599var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
    46044600
    46054601  /**
     
    48054801module.exports = ReactBrowserEventEmitter;
    48064802
    4807 },{"./EventConstants":16,"./EventPluginHub":18,"./EventPluginRegistry":19,"./ReactEventEmitterMixin":60,"./ViewportMetrics":105,"./isEventSupported":135,"./merge":144}],32:[function(_dereq_,module,exports){
    4808 /**
    4809  * Copyright 2013-2014 Facebook, Inc.
    4810  *
    4811  * Licensed under the Apache License, Version 2.0 (the "License");
    4812  * you may not use this file except in compliance with the License.
    4813  * You may obtain a copy of the License at
    4814  *
    4815  * http://www.apache.org/licenses/LICENSE-2.0
    4816  *
    4817  * Unless required by applicable law or agreed to in writing, software
    4818  * distributed under the License is distributed on an "AS IS" BASIS,
    4819  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    4820  * See the License for the specific language governing permissions and
    4821  * limitations under the License.
     4803},{"./EventConstants":17,"./EventPluginHub":19,"./EventPluginRegistry":20,"./Object.assign":29,"./ReactEventEmitterMixin":62,"./ViewportMetrics":108,"./isEventSupported":141}],34:[function(_dereq_,module,exports){
     4804/**
     4805 * Copyright 2013-2014, Facebook, Inc.
     4806 * All rights reserved.
     4807 *
     4808 * This source code is licensed under the BSD-style license found in the
     4809 * LICENSE file in the root directory of this source tree. An additional grant
     4810 * of patent rights can be found in the PATENTS file in the same directory.
    48224811 *
    48234812 * @typechecks
     
    48294818var React = _dereq_("./React");
    48304819
    4831 var ReactTransitionGroup = _dereq_("./ReactTransitionGroup");
    4832 var ReactCSSTransitionGroupChild = _dereq_("./ReactCSSTransitionGroupChild");
     4820var assign = _dereq_("./Object.assign");
     4821
     4822var ReactTransitionGroup = React.createFactory(
     4823  _dereq_("./ReactTransitionGroup")
     4824);
     4825var ReactCSSTransitionGroupChild = React.createFactory(
     4826  _dereq_("./ReactCSSTransitionGroupChild")
     4827);
    48334828
    48344829var ReactCSSTransitionGroup = React.createClass({
     
    48634858
    48644859  render: function() {
    4865     return this.transferPropsTo(
     4860    return (
    48664861      ReactTransitionGroup(
    4867         {childFactory: this._wrapChild},
    4868         this.props.children
     4862        assign({}, this.props, {childFactory: this._wrapChild})
    48694863      )
    48704864    );
     
    48744868module.exports = ReactCSSTransitionGroup;
    48754869
    4876 },{"./React":29,"./ReactCSSTransitionGroupChild":33,"./ReactTransitionGroup":86}],33:[function(_dereq_,module,exports){
    4877 /**
    4878  * Copyright 2013-2014 Facebook, Inc.
    4879  *
    4880  * Licensed under the Apache License, Version 2.0 (the "License");
    4881  * you may not use this file except in compliance with the License.
    4882  * You may obtain a copy of the License at
    4883  *
    4884  * http://www.apache.org/licenses/LICENSE-2.0
    4885  *
    4886  * Unless required by applicable law or agreed to in writing, software
    4887  * distributed under the License is distributed on an "AS IS" BASIS,
    4888  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    4889  * See the License for the specific language governing permissions and
    4890  * limitations under the License.
     4870},{"./Object.assign":29,"./React":31,"./ReactCSSTransitionGroupChild":35,"./ReactTransitionGroup":90}],35:[function(_dereq_,module,exports){
     4871/**
     4872 * Copyright 2013-2014, Facebook, Inc.
     4873 * All rights reserved.
     4874 *
     4875 * This source code is licensed under the BSD-style license found in the
     4876 * LICENSE file in the root directory of this source tree. An additional grant
     4877 * of patent rights can be found in the PATENTS file in the same directory.
    48914878 *
    48924879 * @typechecks
     
    49334920    var noEventTimeout = null;
    49344921
    4935     var endListener = function() {
     4922    var endListener = function(e) {
     4923      if (e && e.target !== node) {
     4924        return;
     4925      }
    49364926      if ("production" !== "development") {
    49374927        clearTimeout(noEventTimeout);
     
    50115001module.exports = ReactCSSTransitionGroupChild;
    50125002
    5013 },{"./CSSCore":3,"./React":29,"./ReactTransitionEvents":85,"./onlyChild":149}],34:[function(_dereq_,module,exports){
    5014 /**
    5015  * Copyright 2013-2014 Facebook, Inc.
    5016  *
    5017  * Licensed under the Apache License, Version 2.0 (the "License");
    5018  * you may not use this file except in compliance with the License.
    5019  * You may obtain a copy of the License at
    5020  *
    5021  * http://www.apache.org/licenses/LICENSE-2.0
    5022  *
    5023  * Unless required by applicable law or agreed to in writing, software
    5024  * distributed under the License is distributed on an "AS IS" BASIS,
    5025  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    5026  * See the License for the specific language governing permissions and
    5027  * limitations under the License.
     5003},{"./CSSCore":4,"./React":31,"./ReactTransitionEvents":89,"./onlyChild":151}],36:[function(_dereq_,module,exports){
     5004/**
     5005 * Copyright 2013-2014, Facebook, Inc.
     5006 * All rights reserved.
     5007 *
     5008 * This source code is licensed under the BSD-style license found in the
     5009 * LICENSE file in the root directory of this source tree. An additional grant
     5010 * of patent rights can be found in the PATENTS file in the same directory.
    50285011 *
    50295012 * @providesModule ReactChildren
     
    51665149module.exports = ReactChildren;
    51675150
    5168 },{"./PooledClass":28,"./traverseAllChildren":156,"./warning":158}],35:[function(_dereq_,module,exports){
    5169 /**
    5170  * Copyright 2013-2014 Facebook, Inc.
    5171  *
    5172  * Licensed under the Apache License, Version 2.0 (the "License");
    5173  * you may not use this file except in compliance with the License.
    5174  * You may obtain a copy of the License at
    5175  *
    5176  * http://www.apache.org/licenses/LICENSE-2.0
    5177  *
    5178  * Unless required by applicable law or agreed to in writing, software
    5179  * distributed under the License is distributed on an "AS IS" BASIS,
    5180  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    5181  * See the License for the specific language governing permissions and
    5182  * limitations under the License.
     5151},{"./PooledClass":30,"./traverseAllChildren":158,"./warning":160}],37:[function(_dereq_,module,exports){
     5152/**
     5153 * Copyright 2013-2014, Facebook, Inc.
     5154 * All rights reserved.
     5155 *
     5156 * This source code is licensed under the BSD-style license found in the
     5157 * LICENSE file in the root directory of this source tree. An additional grant
     5158 * of patent rights can be found in the PATENTS file in the same directory.
    51835159 *
    51845160 * @providesModule ReactComponent
     
    51875163"use strict";
    51885164
    5189 var ReactDescriptor = _dereq_("./ReactDescriptor");
     5165var ReactElement = _dereq_("./ReactElement");
    51905166var ReactOwner = _dereq_("./ReactOwner");
    51915167var ReactUpdates = _dereq_("./ReactUpdates");
    51925168
     5169var assign = _dereq_("./Object.assign");
    51935170var invariant = _dereq_("./invariant");
    51945171var keyMirror = _dereq_("./keyMirror");
    5195 var merge = _dereq_("./merge");
    51965172
    51975173/**
     
    53165292     */
    53175293    setProps: function(partialProps, callback) {
    5318       // Merge with the pending descriptor if it exists, otherwise with existing
    5319       // descriptor props.
    5320       var descriptor = this._pendingDescriptor || this._descriptor;
     5294      // Merge with the pending element if it exists, otherwise with existing
     5295      // element props.
     5296      var element = this._pendingElement || this._currentElement;
    53215297      this.replaceProps(
    5322         merge(descriptor.props, partialProps),
     5298        assign({}, element.props, partialProps),
    53235299        callback
    53245300      );
     
    53465322        'where it is created.'
    53475323      ) : invariant(this._mountDepth === 0));
    5348       // This is a deoptimized path. We optimize for always having a descriptor.
    5349       // This creates an extra internal descriptor.
    5350       this._pendingDescriptor = ReactDescriptor.cloneAndReplaceProps(
    5351         this._pendingDescriptor || this._descriptor,
     5324      // This is a deoptimized path. We optimize for always having a element.
     5325      // This creates an extra internal element.
     5326      this._pendingElement = ReactElement.cloneAndReplaceProps(
     5327        this._pendingElement || this._currentElement,
    53525328        props
    53535329      );
     
    53645340     */
    53655341    _setPropsInternal: function(partialProps, callback) {
    5366       // This is a deoptimized path. We optimize for always having a descriptor.
    5367       // This creates an extra internal descriptor.
    5368       var descriptor = this._pendingDescriptor || this._descriptor;
    5369       this._pendingDescriptor = ReactDescriptor.cloneAndReplaceProps(
    5370         descriptor,
    5371         merge(descriptor.props, partialProps)
     5342      // This is a deoptimized path. We optimize for always having a element.
     5343      // This creates an extra internal element.
     5344      var element = this._pendingElement || this._currentElement;
     5345      this._pendingElement = ReactElement.cloneAndReplaceProps(
     5346        element,
     5347        assign({}, element.props, partialProps)
    53725348      );
    53735349      ReactUpdates.enqueueUpdate(this, callback);
     
    53805356     * `ReactComponent.Mixin.construct.call(this, ...)`.
    53815357     *
    5382      * @param {ReactDescriptor} descriptor
     5358     * @param {ReactElement} element
    53835359     * @internal
    53845360     */
    5385     construct: function(descriptor) {
     5361    construct: function(element) {
    53865362      // This is the public exposed props object after it has been processed
    5387       // with default props. The descriptor's props represents the true internal
     5363      // with default props. The element's props represents the true internal
    53885364      // state of the props.
    5389       this.props = descriptor.props;
     5365      this.props = element.props;
    53905366      // Record the component responsible for creating this component.
    5391       // This is accessible through the descriptor but we maintain an extra
     5367      // This is accessible through the element but we maintain an extra
    53925368      // field for compatibility with devtools and as a way to make an
    53935369      // incremental update. TODO: Consider deprecating this field.
    5394       this._owner = descriptor._owner;
     5370      this._owner = element._owner;
    53955371
    53965372      // All components start unmounted.
     
    54005376      this._pendingCallbacks = null;
    54015377
    5402       // We keep the old descriptor and a reference to the pending descriptor
     5378      // We keep the old element and a reference to the pending element
    54035379      // to track updates.
    5404       this._descriptor = descriptor;
    5405       this._pendingDescriptor = null;
     5380      this._currentElement = element;
     5381      this._pendingElement = null;
    54065382    },
    54075383
     
    54285404        rootID
    54295405      ) : invariant(!this.isMounted()));
    5430       var props = this._descriptor.props;
    5431       if (props.ref != null) {
    5432         var owner = this._descriptor._owner;
    5433         ReactOwner.addComponentAsRefTo(this, props.ref, owner);
     5406      var ref = this._currentElement.ref;
     5407      if (ref != null) {
     5408        var owner = this._currentElement._owner;
     5409        ReactOwner.addComponentAsRefTo(this, ref, owner);
    54345410      }
    54355411      this._rootNodeID = rootID;
     
    54545430        'unmountComponent(): Can only unmount a mounted component.'
    54555431      ) : invariant(this.isMounted()));
    5456       var props = this.props;
    5457       if (props.ref != null) {
    5458         ReactOwner.removeComponentAsRefFrom(this, props.ref, this._owner);
     5432      var ref = this._currentElement.ref;
     5433      if (ref != null) {
     5434        ReactOwner.removeComponentAsRefFrom(this, ref, this._owner);
    54595435      }
    54605436      unmountIDFromEnvironment(this._rootNodeID);
     
    54745450     * @internal
    54755451     */
    5476     receiveComponent: function(nextDescriptor, transaction) {
     5452    receiveComponent: function(nextElement, transaction) {
    54775453      ("production" !== "development" ? invariant(
    54785454        this.isMounted(),
    54795455        'receiveComponent(...): Can only update a mounted component.'
    54805456      ) : invariant(this.isMounted()));
    5481       this._pendingDescriptor = nextDescriptor;
     5457      this._pendingElement = nextElement;
    54825458      this.performUpdateIfNecessary(transaction);
    54835459    },
    54845460
    54855461    /**
    5486      * If `_pendingDescriptor` is set, update the component.
     5462     * If `_pendingElement` is set, update the component.
    54875463     *
    54885464     * @param {ReactReconcileTransaction} transaction
     
    54905466     */
    54915467    performUpdateIfNecessary: function(transaction) {
    5492       if (this._pendingDescriptor == null) {
     5468      if (this._pendingElement == null) {
    54935469        return;
    54945470      }
    5495       var prevDescriptor = this._descriptor;
    5496       var nextDescriptor = this._pendingDescriptor;
    5497       this._descriptor = nextDescriptor;
    5498       this.props = nextDescriptor.props;
    5499       this._owner = nextDescriptor._owner;
    5500       this._pendingDescriptor = null;
    5501       this.updateComponent(transaction, prevDescriptor);
     5471      var prevElement = this._currentElement;
     5472      var nextElement = this._pendingElement;
     5473      this._currentElement = nextElement;
     5474      this.props = nextElement.props;
     5475      this._owner = nextElement._owner;
     5476      this._pendingElement = null;
     5477      this.updateComponent(transaction, prevElement);
    55025478    },
    55035479
     
    55065482     *
    55075483     * @param {ReactReconcileTransaction} transaction
    5508      * @param {object} prevDescriptor
     5484     * @param {object} prevElement
    55095485     * @internal
    55105486     */
    5511     updateComponent: function(transaction, prevDescriptor) {
    5512       var nextDescriptor = this._descriptor;
     5487    updateComponent: function(transaction, prevElement) {
     5488      var nextElement = this._currentElement;
    55135489
    55145490      // If either the owner or a `ref` has changed, make sure the newest owner
    55155491      // has stored a reference to `this`, and the previous owner (if different)
    5516       // has forgotten the reference to `this`. We use the descriptor instead
     5492      // has forgotten the reference to `this`. We use the element instead
    55175493      // of the public this.props because the post processing cannot determine
    5518       // a ref. The ref conceptually lives on the descriptor.
     5494      // a ref. The ref conceptually lives on the element.
    55195495
    55205496      // TODO: Should this even be possible? The owner cannot change because
     
    55245500      // instantiateReactComponent is done.
    55255501
    5526       if (nextDescriptor._owner !== prevDescriptor._owner ||
    5527           nextDescriptor.props.ref !== prevDescriptor.props.ref) {
    5528         if (prevDescriptor.props.ref != null) {
     5502      if (nextElement._owner !== prevElement._owner ||
     5503          nextElement.ref !== prevElement.ref) {
     5504        if (prevElement.ref != null) {
    55295505          ReactOwner.removeComponentAsRefFrom(
    5530             this, prevDescriptor.props.ref, prevDescriptor._owner
     5506            this, prevElement.ref, prevElement._owner
    55315507          );
    55325508        }
    55335509        // Correct, even if the owner is the same, and only the ref has changed.
    5534         if (nextDescriptor.props.ref != null) {
     5510        if (nextElement.ref != null) {
    55355511          ReactOwner.addComponentAsRefTo(
    55365512            this,
    5537             nextDescriptor.props.ref,
    5538             nextDescriptor._owner
     5513            nextElement.ref,
     5514            nextElement._owner
    55395515          );
    55405516        }
     
    55505526     * @final
    55515527     * @internal
    5552      * @see {ReactMount.renderComponent}
     5528     * @see {ReactMount.render}
    55535529     */
    55545530    mountComponentIntoNode: function(rootID, container, shouldReuseMarkup) {
     
    56145590module.exports = ReactComponent;
    56155591
    5616 },{"./ReactDescriptor":56,"./ReactOwner":70,"./ReactUpdates":87,"./invariant":134,"./keyMirror":140,"./merge":144}],36:[function(_dereq_,module,exports){
    5617 /**
    5618  * Copyright 2013-2014 Facebook, Inc.
    5619  *
    5620  * Licensed under the Apache License, Version 2.0 (the "License");
    5621  * you may not use this file except in compliance with the License.
    5622  * You may obtain a copy of the License at
    5623  *
    5624  * http://www.apache.org/licenses/LICENSE-2.0
    5625  *
    5626  * Unless required by applicable law or agreed to in writing, software
    5627  * distributed under the License is distributed on an "AS IS" BASIS,
    5628  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    5629  * See the License for the specific language governing permissions and
    5630  * limitations under the License.
     5592},{"./Object.assign":29,"./ReactElement":58,"./ReactOwner":74,"./ReactUpdates":91,"./invariant":140,"./keyMirror":146}],38:[function(_dereq_,module,exports){
     5593/**
     5594 * Copyright 2013-2014, Facebook, Inc.
     5595 * All rights reserved.
     5596 *
     5597 * This source code is licensed under the BSD-style license found in the
     5598 * LICENSE file in the root directory of this source tree. An additional grant
     5599 * of patent rights can be found in the PATENTS file in the same directory.
    56315600 *
    56325601 * @providesModule ReactComponentBrowserEnvironment
     
    57415710module.exports = ReactComponentBrowserEnvironment;
    57425711
    5743 },{"./ReactDOMIDOperations":45,"./ReactMarkupChecksum":66,"./ReactMount":67,"./ReactPerf":71,"./ReactReconcileTransaction":77,"./getReactRootElementInContainer":128,"./invariant":134,"./setInnerHTML":152}],37:[function(_dereq_,module,exports){
    5744 /**
    5745  * Copyright 2013-2014 Facebook, Inc.
    5746  *
    5747  * Licensed under the Apache License, Version 2.0 (the "License");
    5748  * you may not use this file except in compliance with the License.
    5749  * You may obtain a copy of the License at
    5750  *
    5751  * http://www.apache.org/licenses/LICENSE-2.0
    5752  *
    5753  * Unless required by applicable law or agreed to in writing, software
    5754  * distributed under the License is distributed on an "AS IS" BASIS,
    5755  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    5756  * See the License for the specific language governing permissions and
    5757  * limitations under the License.
     5712},{"./ReactDOMIDOperations":47,"./ReactMarkupChecksum":69,"./ReactMount":70,"./ReactPerf":75,"./ReactReconcileTransaction":81,"./getReactRootElementInContainer":134,"./invariant":140,"./setInnerHTML":154}],39:[function(_dereq_,module,exports){
     5713/**
     5714 * Copyright 2013-2014, Facebook, Inc.
     5715 * All rights reserved.
     5716 *
     5717 * This source code is licensed under the BSD-style license found in the
     5718 * LICENSE file in the root directory of this source tree. An additional grant
     5719 * of patent rights can be found in the PATENTS file in the same directory.
    57585720 *
    57595721* @providesModule ReactComponentWithPureRenderMixin
     
    57975759module.exports = ReactComponentWithPureRenderMixin;
    57985760
    5799 },{"./shallowEqual":153}],38:[function(_dereq_,module,exports){
    5800 /**
    5801  * Copyright 2013-2014 Facebook, Inc.
    5802  *
    5803  * Licensed under the Apache License, Version 2.0 (the "License");
    5804  * you may not use this file except in compliance with the License.
    5805  * You may obtain a copy of the License at
    5806  *
    5807  * http://www.apache.org/licenses/LICENSE-2.0
    5808  *
    5809  * Unless required by applicable law or agreed to in writing, software
    5810  * distributed under the License is distributed on an "AS IS" BASIS,
    5811  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    5812  * See the License for the specific language governing permissions and
    5813  * limitations under the License.
     5761},{"./shallowEqual":155}],40:[function(_dereq_,module,exports){
     5762/**
     5763 * Copyright 2013-2014, Facebook, Inc.
     5764 * All rights reserved.
     5765 *
     5766 * This source code is licensed under the BSD-style license found in the
     5767 * LICENSE file in the root directory of this source tree. An additional grant
     5768 * of patent rights can be found in the PATENTS file in the same directory.
    58145769 *
    58155770 * @providesModule ReactCompositeComponent
     
    58215776var ReactContext = _dereq_("./ReactContext");
    58225777var ReactCurrentOwner = _dereq_("./ReactCurrentOwner");
    5823 var ReactDescriptor = _dereq_("./ReactDescriptor");
    5824 var ReactDescriptorValidator = _dereq_("./ReactDescriptorValidator");
     5778var ReactElement = _dereq_("./ReactElement");
     5779var ReactElementValidator = _dereq_("./ReactElementValidator");
    58255780var ReactEmptyComponent = _dereq_("./ReactEmptyComponent");
    58265781var ReactErrorUtils = _dereq_("./ReactErrorUtils");
     5782var ReactLegacyElement = _dereq_("./ReactLegacyElement");
    58275783var ReactOwner = _dereq_("./ReactOwner");
    58285784var ReactPerf = _dereq_("./ReactPerf");
     
    58325788var ReactUpdates = _dereq_("./ReactUpdates");
    58335789
     5790var assign = _dereq_("./Object.assign");
    58345791var instantiateReactComponent = _dereq_("./instantiateReactComponent");
    58355792var invariant = _dereq_("./invariant");
    58365793var keyMirror = _dereq_("./keyMirror");
    5837 var merge = _dereq_("./merge");
    5838 var mixInto = _dereq_("./mixInto");
     5794var keyOf = _dereq_("./keyOf");
    58395795var monitorCodeUse = _dereq_("./monitorCodeUse");
    58405796var mapObject = _dereq_("./mapObject");
    58415797var shouldUpdateReactComponent = _dereq_("./shouldUpdateReactComponent");
    58425798var warning = _dereq_("./warning");
     5799
     5800var MIXINS_KEY = keyOf({mixins: null});
    58435801
    58445802/**
     
    61456103      ReactPropTypeLocations.childContext
    61466104    );
    6147     Constructor.childContextTypes = merge(
     6105    Constructor.childContextTypes = assign(
     6106      {},
    61486107      Constructor.childContextTypes,
    61496108      childContextTypes
     
    61566115      ReactPropTypeLocations.context
    61576116    );
    6158     Constructor.contextTypes = merge(Constructor.contextTypes, contextTypes);
     6117    Constructor.contextTypes = assign(
     6118      {},
     6119      Constructor.contextTypes,
     6120      contextTypes
     6121    );
    61596122  },
    61606123  /**
     
    61786141      ReactPropTypeLocations.prop
    61796142    );
    6180     Constructor.propTypes = merge(Constructor.propTypes, propTypes);
     6143    Constructor.propTypes = assign(
     6144      {},
     6145      Constructor.propTypes,
     6146      propTypes
     6147    );
    61816148  },
    61826149  statics: function(Constructor, statics) {
     
    62476214  ) : invariant(instance.isMounted() ||
    62486215    compositeLifeCycleState === CompositeLifeCycle.MOUNTING));
    6249   ("production" !== "development" ? invariant(compositeLifeCycleState !== CompositeLifeCycle.RECEIVING_STATE,
     6216  ("production" !== "development" ? invariant(
     6217    ReactCurrentOwner.current == null,
    62506218    'replaceState(...): Cannot update during an existing state transition ' +
    6251     '(such as within `render`). This could potentially cause an infinite ' +
    6252     'loop so it is forbidden.'
    6253   ) : invariant(compositeLifeCycleState !== CompositeLifeCycle.RECEIVING_STATE));
     6219    '(such as within `render`). Render methods should be a pure function ' +
     6220    'of props and state.'
     6221  ) : invariant(ReactCurrentOwner.current == null));
    62546222  ("production" !== "development" ? invariant(compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING,
    62556223    'replaceState(...): Cannot update while unmounting component. This ' +
     
    62596227
    62606228/**
    6261  * Custom version of `mixInto` which handles policy validation and reserved
     6229 * Mixin helper which handles policy validation and reserved
    62626230 * specification keys when building `ReactCompositeComponent` classses.
    62636231 */
    62646232function mixSpecIntoComponent(Constructor, spec) {
     6233  if (!spec) {
     6234    return;
     6235  }
     6236
    62656237  ("production" !== "development" ? invariant(
    6266     !ReactDescriptor.isValidFactory(spec),
     6238    !ReactLegacyElement.isValidFactory(spec),
    62676239    'ReactCompositeComponent: You\'re attempting to ' +
    62686240    'use a component class as a mixin. Instead, just use a regular object.'
    6269   ) : invariant(!ReactDescriptor.isValidFactory(spec)));
     6241  ) : invariant(!ReactLegacyElement.isValidFactory(spec)));
    62706242  ("production" !== "development" ? invariant(
    6271     !ReactDescriptor.isValidDescriptor(spec),
     6243    !ReactElement.isValidElement(spec),
    62726244    'ReactCompositeComponent: You\'re attempting to ' +
    62736245    'use a component as a mixin. Instead, just use a regular object.'
    6274   ) : invariant(!ReactDescriptor.isValidDescriptor(spec)));
     6246  ) : invariant(!ReactElement.isValidElement(spec)));
    62756247
    62766248  var proto = Constructor.prototype;
     6249
     6250  // By handling mixins before any other properties, we ensure the same
     6251  // chaining order is applied to methods with DEFINE_MANY policy, whether
     6252  // mixins are listed before or after these methods in the spec.
     6253  if (spec.hasOwnProperty(MIXINS_KEY)) {
     6254    RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
     6255  }
     6256
    62776257  for (var name in spec) {
    6278     var property = spec[name];
    62796258    if (!spec.hasOwnProperty(name)) {
    62806259      continue;
    62816260    }
    62826261
     6262    if (name === MIXINS_KEY) {
     6263      // We have already handled mixins in a special case above
     6264      continue;
     6265    }
     6266
     6267    var property = spec[name];
    62836268    validateMethodOverride(proto, name);
    62846269
     
    63586343    }
    63596344
     6345    var isReserved = name in RESERVED_SPEC_KEYS;
     6346    ("production" !== "development" ? invariant(
     6347      !isReserved,
     6348      'ReactCompositeComponent: You are attempting to define a reserved ' +
     6349      'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' +
     6350      'as an instance property instead; it will still be accessible on the ' +
     6351      'constructor.',
     6352      name
     6353    ) : invariant(!isReserved));
     6354
    63606355    var isInherited = name in Constructor;
    6361     var result = property;
    6362     if (isInherited) {
    6363       var existingProperty = Constructor[name];
    6364       var existingType = typeof existingProperty;
    6365       var propertyType = typeof property;
    6366       ("production" !== "development" ? invariant(
    6367         existingType === 'function' && propertyType === 'function',
    6368         'ReactCompositeComponent: You are attempting to define ' +
    6369         '`%s` on your component more than once, but that is only supported ' +
    6370         'for functions, which are chained together. This conflict may be ' +
    6371         'due to a mixin.',
    6372         name
    6373       ) : invariant(existingType === 'function' && propertyType === 'function'));
    6374       result = createChainedFunction(existingProperty, property);
    6375     }
    6376     Constructor[name] = result;
     6356    ("production" !== "development" ? invariant(
     6357      !isInherited,
     6358      'ReactCompositeComponent: You are attempting to define ' +
     6359      '`%s` on your component more than once. This conflict may be ' +
     6360      'due to a mixin.',
     6361      name
     6362    ) : invariant(!isInherited));
     6363    Constructor[name] = property;
    63776364  }
    63786365}
     
    63956382      one[key] === undefined,
    63966383      'mergeObjectsWithNoDuplicateKeys(): ' +
    6397       'Tried to merge two objects with the same key: %s',
     6384      'Tried to merge two objects with the same key: `%s`. This conflict ' +
     6385      'may be due to a mixin; in particular, this may be caused by two ' +
     6386      'getInitialState() or getDefaultProps() methods returning objects ' +
     6387      'with clashing keys.',
    63986388      key
    63996389    ) : invariant(one[key] === undefined));
     
    64516441 * Low Row: ReactComponent.CompositeLifeCycle
    64526442 *
    6453  * +-------+------------------------------------------------------+--------+
    6454  * |  UN   |                    MOUNTED                           |   UN   |
    6455  * |MOUNTED|                                                      | MOUNTED|
    6456  * +-------+------------------------------------------------------+--------+
    6457  * |       ^--------+   +------+   +------+   +------+   +--------^        |
    6458  * |       |        |   |      |   |      |   |      |   |        |        |
    6459  * |    0--|MOUNTING|-0-|RECEIV|-0-|RECEIV|-0-|RECEIV|-0-|   UN   |--->0   |
    6460  * |       |        |   |PROPS |   | PROPS|   | STATE|   |MOUNTING|        |
    6461  * |       |        |   |      |   |      |   |      |   |        |        |
    6462  * |       |        |   |      |   |      |   |      |   |        |        |
    6463  * |       +--------+   +------+   +------+   +------+   +--------+        |
    6464  * |       |                                                      |        |
    6465  * +-------+------------------------------------------------------+--------+
     6443 * +-------+---------------------------------+--------+
     6444 * |  UN   |             MOUNTED             |   UN   |
     6445 * |MOUNTED|                                 | MOUNTED|
     6446 * +-------+---------------------------------+--------+
     6447 * |       ^--------+   +-------+   +--------^        |
     6448 * |       |        |   |      |   |        |        |
     6449 * |    0--|MOUNTING|-0-|RECEIVE|-0-|   UN   |--->0   |
     6450 * |       |        |   |PROPS  |   |MOUNTING|        |
     6451 * |       |        |   |      |   |        |        |
     6452 * |       |        |   |      |   |        |        |
     6453 * |       +--------+   +-------+   +--------+        |
     6454 * |       |                                 |        |
     6455 * +-------+---------------------------------+--------+
    64666456 */
    64676457var CompositeLifeCycle = keyMirror({
     
    64806470   * changes differently.
    64816471   */
    6482   RECEIVING_PROPS: null,
    6483   /**
    6484    * Components that are mounted and receiving new state are guarded against
    6485    * additional state changes.
    6486    */
    6487   RECEIVING_STATE: null
     6472  RECEIVING_PROPS: null
    64886473});
    64896474
     
    64966481   * Base constructor for all composite component.
    64976482   *
    6498    * @param {ReactDescriptor} descriptor
     6483   * @param {ReactElement} element
    64996484   * @final
    65006485   * @internal
    65016486   */
    6502   construct: function(descriptor) {
     6487  construct: function(element) {
    65036488    // Children can be either an array or more than one argument
    65046489    ReactComponent.Mixin.construct.apply(this, arguments);
     
    65096494
    65106495    // This is the public post-processed context. The real context and pending
    6511     // context lives on the descriptor.
     6496    // context lives on the element.
    65126497    this.context = null;
    65136498
     
    65526537      }
    65536538
    6554       this.context = this._processContext(this._descriptor._context);
     6539      this.context = this._processContext(this._currentElement._context);
    65556540      this.props = this._processProps(this.props);
    65566541
     
    65766561
    65776562      this._renderedComponent = instantiateReactComponent(
    6578         this._renderValidatedComponent()
     6563        this._renderValidatedComponent(),
     6564        this._currentElement.type // The wrapping type
    65796565      );
    65806566
     
    66486634    // Merge with `_pendingState` if it exists, otherwise with existing state.
    66496635    this.replaceState(
    6650       merge(this._pendingState || this.state, partialState),
     6636      assign({}, this._pendingState || this.state, partialState),
    66516637      callback
    66526638    );
     
    67366722        ) : invariant(name in this.constructor.childContextTypes));
    67376723      }
    6738       return merge(currentContext, childContext);
     6724      return assign({}, currentContext, childContext);
    67396725    }
    67406726    return currentContext;
     
    67516737   */
    67526738  _processProps: function(newProps) {
    6753     var defaultProps = this.constructor.defaultProps;
    6754     var props;
    6755     if (defaultProps) {
    6756       props = merge(newProps);
    6757       for (var propName in defaultProps) {
    6758         if (typeof props[propName] === 'undefined') {
    6759           props[propName] = defaultProps[propName];
    6760         }
    6761       }
    6762     } else {
    6763       props = newProps;
    6764     }
    67656739    if ("production" !== "development") {
    67666740      var propTypes = this.constructor.propTypes;
    67676741      if (propTypes) {
    6768         this._checkPropTypes(propTypes, props, ReactPropTypeLocations.prop);
     6742        this._checkPropTypes(propTypes, newProps, ReactPropTypeLocations.prop);
    67696743      }
    67706744    }
    6771     return props;
     6745    return newProps;
    67726746  },
    67736747
     
    67816755   */
    67826756  _checkPropTypes: function(propTypes, props, location) {
    6783     // TODO: Stop validating prop types here and only use the descriptor
     6757    // TODO: Stop validating prop types here and only use the element
    67846758    // validation.
    67856759    var componentName = this.constructor.displayName;
     
    68006774
    68016775  /**
    6802    * If any of `_pendingDescriptor`, `_pendingState`, or `_pendingForceUpdate`
     6776   * If any of `_pendingElement`, `_pendingState`, or `_pendingForceUpdate`
    68036777   * is set, update the component.
    68046778   *
     
    68156789    }
    68166790
    6817     if (this._pendingDescriptor == null &&
     6791    if (this._pendingElement == null &&
    68186792        this._pendingState == null &&
    68196793        !this._pendingForceUpdate) {
     
    68236797    var nextContext = this.context;
    68246798    var nextProps = this.props;
    6825     var nextDescriptor = this._descriptor;
    6826     if (this._pendingDescriptor != null) {
    6827       nextDescriptor = this._pendingDescriptor;
    6828       nextContext = this._processContext(nextDescriptor._context);
    6829       nextProps = this._processProps(nextDescriptor.props);
    6830       this._pendingDescriptor = null;
     6799    var nextElement = this._currentElement;
     6800    if (this._pendingElement != null) {
     6801      nextElement = this._pendingElement;
     6802      nextContext = this._processContext(nextElement._context);
     6803      nextProps = this._processProps(nextElement.props);
     6804      this._pendingElement = null;
    68316805
    68326806      this._compositeLifeCycleState = CompositeLifeCycle.RECEIVING_PROPS;
     
    68366810    }
    68376811
    6838     this._compositeLifeCycleState = CompositeLifeCycle.RECEIVING_STATE;
     6812    this._compositeLifeCycleState = null;
    68396813
    68406814    var nextState = this._pendingState || this.state;
    68416815    this._pendingState = null;
    68426816
    6843     try {
    6844       var shouldUpdate =
    6845         this._pendingForceUpdate ||
    6846         !this.shouldComponentUpdate ||
    6847         this.shouldComponentUpdate(nextProps, nextState, nextContext);
    6848 
    6849       if ("production" !== "development") {
    6850         if (typeof shouldUpdate === "undefined") {
    6851           console.warn(
    6852             (this.constructor.displayName || 'ReactCompositeComponent') +
    6853             '.shouldComponentUpdate(): Returned undefined instead of a ' +
    6854             'boolean value. Make sure to return true or false.'
    6855           );
    6856         }
     6817    var shouldUpdate =
     6818      this._pendingForceUpdate ||
     6819      !this.shouldComponentUpdate ||
     6820      this.shouldComponentUpdate(nextProps, nextState, nextContext);
     6821
     6822    if ("production" !== "development") {
     6823      if (typeof shouldUpdate === "undefined") {
     6824        console.warn(
     6825          (this.constructor.displayName || 'ReactCompositeComponent') +
     6826          '.shouldComponentUpdate(): Returned undefined instead of a ' +
     6827          'boolean value. Make sure to return true or false.'
     6828        );
    68576829      }
    6858 
    6859       if (shouldUpdate) {
    6860         this._pendingForceUpdate = false;
    6861         // Will set `this.props`, `this.state` and `this.context`.
    6862         this._performComponentUpdate(
    6863           nextDescriptor,
    6864           nextProps,
    6865           nextState,
    6866           nextContext,
    6867           transaction
    6868         );
    6869       } else {
    6870         // If it's determined that a component should not update, we still want
    6871         // to set props and state.
    6872         this._descriptor = nextDescriptor;
    6873         this.props = nextProps;
    6874         this.state = nextState;
    6875         this.context = nextContext;
    6876 
    6877         // Owner cannot change because shouldUpdateReactComponent doesn't allow
    6878         // it. TODO: Remove this._owner completely.
    6879         this._owner = nextDescriptor._owner;
    6880       }
    6881     } finally {
    6882       this._compositeLifeCycleState = null;
     6830    }
     6831
     6832    if (shouldUpdate) {
     6833      this._pendingForceUpdate = false;
     6834      // Will set `this.props`, `this.state` and `this.context`.
     6835      this._performComponentUpdate(
     6836        nextElement,
     6837        nextProps,
     6838        nextState,
     6839        nextContext,
     6840        transaction
     6841      );
     6842    } else {
     6843      // If it's determined that a component should not update, we still want
     6844      // to set props and state.
     6845      this._currentElement = nextElement;
     6846      this.props = nextProps;
     6847      this.state = nextState;
     6848      this.context = nextContext;
     6849
     6850      // Owner cannot change because shouldUpdateReactComponent doesn't allow
     6851      // it. TODO: Remove this._owner completely.
     6852      this._owner = nextElement._owner;
    68836853    }
    68846854  },
     
    68886858   * performs update.
    68896859   *
    6890    * @param {ReactDescriptor} nextDescriptor Next descriptor
     6860   * @param {ReactElement} nextElement Next element
    68916861   * @param {object} nextProps Next public object to set as properties.
    68926862   * @param {?object} nextState Next object to set as state.
     
    68966866   */
    68976867  _performComponentUpdate: function(
    6898     nextDescriptor,
     6868    nextElement,
    68996869    nextProps,
    69006870    nextState,
     
    69026872    transaction
    69036873  ) {
    6904     var prevDescriptor = this._descriptor;
     6874    var prevElement = this._currentElement;
    69056875    var prevProps = this.props;
    69066876    var prevState = this.state;
     
    69116881    }
    69126882
    6913     this._descriptor = nextDescriptor;
     6883    this._currentElement = nextElement;
    69146884    this.props = nextProps;
    69156885    this.state = nextState;
     
    69186888    // Owner cannot change because shouldUpdateReactComponent doesn't allow
    69196889    // it. TODO: Remove this._owner completely.
    6920     this._owner = nextDescriptor._owner;
     6890    this._owner = nextElement._owner;
    69216891
    69226892    this.updateComponent(
    69236893      transaction,
    6924       prevDescriptor
     6894      prevElement
    69256895    );
    69266896
     
    69336903  },
    69346904
    6935   receiveComponent: function(nextDescriptor, transaction) {
    6936     if (nextDescriptor === this._descriptor &&
    6937         nextDescriptor._owner != null) {
    6938       // Since descriptors are immutable after the owner is rendered,
     6905  receiveComponent: function(nextElement, transaction) {
     6906    if (nextElement === this._currentElement &&
     6907        nextElement._owner != null) {
     6908      // Since elements are immutable after the owner is rendered,
    69396909      // we can do a cheap identity compare here to determine if this is a
    69406910      // superfluous reconcile. It's possible for state to be mutable but such
    69416911      // change should trigger an update of the owner which would recreate
    6942       // the descriptor. We explicitly check for the existence of an owner since
    6943       // it's possible for a descriptor created outside a composite to be
     6912      // the element. We explicitly check for the existence of an owner since
     6913      // it's possible for a element created outside a composite to be
    69446914      // deeply mutated and reused.
    69456915      return;
     
    69486918    ReactComponent.Mixin.receiveComponent.call(
    69496919      this,
    6950       nextDescriptor,
     6920      nextElement,
    69516921      transaction
    69526922    );
     
    69606930   *
    69616931   * @param {ReactReconcileTransaction} transaction
    6962    * @param {ReactDescriptor} prevDescriptor
     6932   * @param {ReactElement} prevElement
    69636933   * @internal
    69646934   * @overridable
     
    69676937    'ReactCompositeComponent',
    69686938    'updateComponent',
    6969     function(transaction, prevParentDescriptor) {
     6939    function(transaction, prevParentElement) {
    69706940      ReactComponent.Mixin.updateComponent.call(
    69716941        this,
    69726942        transaction,
    6973         prevParentDescriptor
     6943        prevParentElement
    69746944      );
    69756945
    69766946      var prevComponentInstance = this._renderedComponent;
    6977       var prevDescriptor = prevComponentInstance._descriptor;
    6978       var nextDescriptor = this._renderValidatedComponent();
    6979       if (shouldUpdateReactComponent(prevDescriptor, nextDescriptor)) {
    6980         prevComponentInstance.receiveComponent(nextDescriptor, transaction);
     6947      var prevElement = prevComponentInstance._currentElement;
     6948      var nextElement = this._renderValidatedComponent();
     6949      if (shouldUpdateReactComponent(prevElement, nextElement)) {
     6950        prevComponentInstance.receiveComponent(nextElement, transaction);
    69816951      } else {
    69826952        // These two IDs are actually the same! But nothing should rely on that.
     
    69846954        var prevComponentID = prevComponentInstance._rootNodeID;
    69856955        prevComponentInstance.unmountComponent();
    6986         this._renderedComponent = instantiateReactComponent(nextDescriptor);
     6956        this._renderedComponent = instantiateReactComponent(
     6957          nextElement,
     6958          this._currentElement.type
     6959        );
    69876960        var nextMarkup = this._renderedComponent.mountComponent(
    69886961          thisID,
     
    70226995      compositeLifeCycleState === CompositeLifeCycle.MOUNTING));
    70236996    ("production" !== "development" ? invariant(
    7024       compositeLifeCycleState !== CompositeLifeCycle.RECEIVING_STATE &&
    7025       compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING,
     6997      compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING &&
     6998      ReactCurrentOwner.current == null,
    70266999      'forceUpdate(...): Cannot force an update while unmounting component ' +
    7027       'or during an existing state transition (such as within `render`).'
    7028     ) : invariant(compositeLifeCycleState !== CompositeLifeCycle.RECEIVING_STATE &&
    7029     compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING));
     7000      'or within a `render` function.'
     7001    ) : invariant(compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING &&
     7002    ReactCurrentOwner.current == null));
    70307003    this._pendingForceUpdate = true;
    70317004    ReactUpdates.enqueueUpdate(this, callback);
     
    70427015      var previousContext = ReactContext.current;
    70437016      ReactContext.current = this._processChildContext(
    7044         this._descriptor._context
     7017        this._currentElement._context
    70457018      );
    70467019      ReactCurrentOwner.current = this;
     
    70587031      }
    70597032      ("production" !== "development" ? invariant(
    7060         ReactDescriptor.isValidDescriptor(renderedComponent),
     7033        ReactElement.isValidElement(renderedComponent),
    70617034        '%s.render(): A valid ReactComponent must be returned. You may have ' +
    70627035          'returned undefined, an array or some other invalid object.',
    70637036        this.constructor.displayName || 'ReactCompositeComponent'
    7064       ) : invariant(ReactDescriptor.isValidDescriptor(renderedComponent)));
     7037      ) : invariant(ReactElement.isValidElement(renderedComponent)));
    70657038      return renderedComponent;
    70667039    }
     
    70917064  _bindAutoBindMethod: function(method) {
    70927065    var component = this;
    7093     var boundMethod = function() {
    7094       return method.apply(component, arguments);
    7095     };
     7066    var boundMethod = method.bind(component);
    70967067    if ("production" !== "development") {
    70977068      boundMethod.__reactBoundContext = component;
     
    71317102
    71327103var ReactCompositeComponentBase = function() {};
    7133 mixInto(ReactCompositeComponentBase, ReactComponent.Mixin);
    7134 mixInto(ReactCompositeComponentBase, ReactOwner.Mixin);
    7135 mixInto(ReactCompositeComponentBase, ReactPropTransferer.Mixin);
    7136 mixInto(ReactCompositeComponentBase, ReactCompositeComponentMixin);
     7104assign(
     7105  ReactCompositeComponentBase.prototype,
     7106  ReactComponent.Mixin,
     7107  ReactOwner.Mixin,
     7108  ReactPropTransferer.Mixin,
     7109  ReactCompositeComponentMixin
     7110);
    71377111
    71387112/**
     
    71587132   */
    71597133  createClass: function(spec) {
    7160     var Constructor = function(props, owner) {
    7161       this.construct(props, owner);
     7134    var Constructor = function(props) {
     7135      // This constructor is overridden by mocks. The argument is used
     7136      // by mocks to assert on what gets mounted. This will later be used
     7137      // by the stand-alone class implementation.
    71627138    };
    71637139    Constructor.prototype = new ReactCompositeComponentBase();
     
    72027178    }
    72037179
    7204     var descriptorFactory = ReactDescriptor.createFactory(Constructor);
    7205 
    72067180    if ("production" !== "development") {
    7207       return ReactDescriptorValidator.createFactory(
    7208         descriptorFactory,
    7209         Constructor.propTypes,
    7210         Constructor.contextTypes
     7181      return ReactLegacyElement.wrapFactory(
     7182        ReactElementValidator.createFactory(Constructor)
    72117183      );
    72127184    }
    7213 
    7214     return descriptorFactory;
     7185    return ReactLegacyElement.wrapFactory(
     7186      ReactElement.createFactory(Constructor)
     7187    );
    72157188  },
    72167189
     
    72247197module.exports = ReactCompositeComponent;
    72257198
    7226 },{"./ReactComponent":35,"./ReactContext":39,"./ReactCurrentOwner":40,"./ReactDescriptor":56,"./ReactDescriptorValidator":57,"./ReactEmptyComponent":58,"./ReactErrorUtils":59,"./ReactOwner":70,"./ReactPerf":71,"./ReactPropTransferer":72,"./ReactPropTypeLocationNames":73,"./ReactPropTypeLocations":74,"./ReactUpdates":87,"./instantiateReactComponent":133,"./invariant":134,"./keyMirror":140,"./mapObject":142,"./merge":144,"./mixInto":147,"./monitorCodeUse":148,"./shouldUpdateReactComponent":154,"./warning":158}],39:[function(_dereq_,module,exports){
    7227 /**
    7228  * Copyright 2013-2014 Facebook, Inc.
    7229  *
    7230  * Licensed under the Apache License, Version 2.0 (the "License");
    7231  * you may not use this file except in compliance with the License.
    7232  * You may obtain a copy of the License at
    7233  *
    7234  * http://www.apache.org/licenses/LICENSE-2.0
    7235  *
    7236  * Unless required by applicable law or agreed to in writing, software
    7237  * distributed under the License is distributed on an "AS IS" BASIS,
    7238  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    7239  * See the License for the specific language governing permissions and
    7240  * limitations under the License.
     7199},{"./Object.assign":29,"./ReactComponent":37,"./ReactContext":41,"./ReactCurrentOwner":42,"./ReactElement":58,"./ReactElementValidator":59,"./ReactEmptyComponent":60,"./ReactErrorUtils":61,"./ReactLegacyElement":67,"./ReactOwner":74,"./ReactPerf":75,"./ReactPropTransferer":76,"./ReactPropTypeLocationNames":77,"./ReactPropTypeLocations":78,"./ReactUpdates":91,"./instantiateReactComponent":139,"./invariant":140,"./keyMirror":146,"./keyOf":147,"./mapObject":148,"./monitorCodeUse":150,"./shouldUpdateReactComponent":156,"./warning":160}],41:[function(_dereq_,module,exports){
     7200/**
     7201 * Copyright 2013-2014, Facebook, Inc.
     7202 * All rights reserved.
     7203 *
     7204 * This source code is licensed under the BSD-style license found in the
     7205 * LICENSE file in the root directory of this source tree. An additional grant
     7206 * of patent rights can be found in the PATENTS file in the same directory.
    72417207 *
    72427208 * @providesModule ReactContext
     
    72457211"use strict";
    72467212
    7247 var merge = _dereq_("./merge");
     7213var assign = _dereq_("./Object.assign");
    72487214
    72497215/**
     
    72677233   *
    72687234   *  render: function() {
    7269    *    var children = ReactContext.withContext({foo: 'foo'} () => (
     7235   *    var children = ReactContext.withContext({foo: 'foo'}, () => (
    72707236   *
    72717237   *    ));
     
    72807246    var result;
    72817247    var previousContext = ReactContext.current;
    7282     ReactContext.current = merge(previousContext, newContext);
     7248    ReactContext.current = assign({}, previousContext, newContext);
    72837249    try {
    72847250      result = scopedCallback();
     
    72937259module.exports = ReactContext;
    72947260
    7295 },{"./merge":144}],40:[function(_dereq_,module,exports){
    7296 /**
    7297  * Copyright 2013-2014 Facebook, Inc.
    7298  *
    7299  * Licensed under the Apache License, Version 2.0 (the "License");
    7300  * you may not use this file except in compliance with the License.
    7301  * You may obtain a copy of the License at
    7302  *
    7303  * http://www.apache.org/licenses/LICENSE-2.0
    7304  *
    7305  * Unless required by applicable law or agreed to in writing, software
    7306  * distributed under the License is distributed on an "AS IS" BASIS,
    7307  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    7308  * See the License for the specific language governing permissions and
    7309  * limitations under the License.
     7261},{"./Object.assign":29}],42:[function(_dereq_,module,exports){
     7262/**
     7263 * Copyright 2013-2014, Facebook, Inc.
     7264 * All rights reserved.
     7265 *
     7266 * This source code is licensed under the BSD-style license found in the
     7267 * LICENSE file in the root directory of this source tree. An additional grant
     7268 * of patent rights can be found in the PATENTS file in the same directory.
    73107269 *
    73117270 * @providesModule ReactCurrentOwner
     
    73347293module.exports = ReactCurrentOwner;
    73357294
    7336 },{}],41:[function(_dereq_,module,exports){
    7337 /**
    7338  * Copyright 2013-2014 Facebook, Inc.
    7339  *
    7340  * Licensed under the Apache License, Version 2.0 (the "License");
    7341  * you may not use this file except in compliance with the License.
    7342  * You may obtain a copy of the License at
    7343  *
    7344  * http://www.apache.org/licenses/LICENSE-2.0
    7345  *
    7346  * Unless required by applicable law or agreed to in writing, software
    7347  * distributed under the License is distributed on an "AS IS" BASIS,
    7348  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    7349  * See the License for the specific language governing permissions and
    7350  * limitations under the License.
     7295},{}],43:[function(_dereq_,module,exports){
     7296/**
     7297 * Copyright 2013-2014, Facebook, Inc.
     7298 * All rights reserved.
     7299 *
     7300 * This source code is licensed under the BSD-style license found in the
     7301 * LICENSE file in the root directory of this source tree. An additional grant
     7302 * of patent rights can be found in the PATENTS file in the same directory.
    73517303 *
    73527304 * @providesModule ReactDOM
     
    73567308"use strict";
    73577309
    7358 var ReactDescriptor = _dereq_("./ReactDescriptor");
    7359 var ReactDescriptorValidator = _dereq_("./ReactDescriptorValidator");
    7360 var ReactDOMComponent = _dereq_("./ReactDOMComponent");
    7361 
    7362 var mergeInto = _dereq_("./mergeInto");
     7310var ReactElement = _dereq_("./ReactElement");
     7311var ReactElementValidator = _dereq_("./ReactElementValidator");
     7312var ReactLegacyElement = _dereq_("./ReactLegacyElement");
     7313
    73637314var mapObject = _dereq_("./mapObject");
    73647315
    73657316/**
    7366  * Creates a new React class that is idempotent and capable of containing other
    7367  * React components. It accepts event listeners and DOM properties that are
    7368  * valid according to `DOMProperty`.
    7369  *
    7370  *  - Event listeners: `onClick`, `onMouseDown`, etc.
    7371  *  - DOM properties: `className`, `name`, `title`, etc.
    7372  *
    7373  * The `style` property functions differently from the DOM API. It accepts an
    7374  * object mapping of style properties to values.
    7375  *
    7376  * @param {boolean} omitClose True if the close tag should be omitted.
     7317 * Create a factory that creates HTML tag elements.
     7318 *
    73777319 * @param {string} tag Tag name (e.g. `div`).
    73787320 * @private
    73797321 */
    7380 function createDOMComponentClass(omitClose, tag) {
    7381   var Constructor = function(descriptor) {
    7382     this.construct(descriptor);
    7383   };
    7384   Constructor.prototype = new ReactDOMComponent(tag, omitClose);
    7385   Constructor.prototype.constructor = Constructor;
    7386   Constructor.displayName = tag;
    7387 
    7388   var ConvenienceConstructor = ReactDescriptor.createFactory(Constructor);
    7389 
     7322function createDOMFactory(tag) {
    73907323  if ("production" !== "development") {
    7391     return ReactDescriptorValidator.createFactory(
    7392       ConvenienceConstructor
     7324    return ReactLegacyElement.markNonLegacyFactory(
     7325      ReactElementValidator.createFactory(tag)
    73937326    );
    73947327  }
    7395 
    7396   return ConvenienceConstructor;
     7328  return ReactLegacyElement.markNonLegacyFactory(
     7329    ReactElement.createFactory(tag)
     7330  );
    73977331}
    73987332
     
    74047338 */
    74057339var ReactDOM = mapObject({
    7406   a: false,
    7407   abbr: false,
    7408   address: false,
    7409   area: true,
    7410   article: false,
    7411   aside: false,
    7412   audio: false,
    7413   b: false,
    7414   base: true,
    7415   bdi: false,
    7416   bdo: false,
    7417   big: false,
    7418   blockquote: false,
    7419   body: false,
    7420   br: true,
    7421   button: false,
    7422   canvas: false,
    7423   caption: false,
    7424   cite: false,
    7425   code: false,
    7426   col: true,
    7427   colgroup: false,
    7428   data: false,
    7429   datalist: false,
    7430   dd: false,
    7431   del: false,
    7432   details: false,
    7433   dfn: false,
    7434   dialog: false,
    7435   div: false,
    7436   dl: false,
    7437   dt: false,
    7438   em: false,
    7439   embed: true,
    7440   fieldset: false,
    7441   figcaption: false,
    7442   figure: false,
    7443   footer: false,
    7444   form: false, // NOTE: Injected, see `ReactDOMForm`.
    7445   h1: false,
    7446   h2: false,
    7447   h3: false,
    7448   h4: false,
    7449   h5: false,
    7450   h6: false,
    7451   head: false,
    7452   header: false,
    7453   hr: true,
    7454   html: false,
    7455   i: false,
    7456   iframe: false,
    7457   img: true,
    7458   input: true,
    7459   ins: false,
    7460   kbd: false,
    7461   keygen: true,
    7462   label: false,
    7463   legend: false,
    7464   li: false,
    7465   link: true,
    7466   main: false,
    7467   map: false,
    7468   mark: false,
    7469   menu: false,
    7470   menuitem: false, // NOTE: Close tag should be omitted, but causes problems.
    7471   meta: true,
    7472   meter: false,
    7473   nav: false,
    7474   noscript: false,
    7475   object: false,
    7476   ol: false,
    7477   optgroup: false,
    7478   option: false,
    7479   output: false,
    7480   p: false,
    7481   param: true,
    7482   picture: false,
    7483   pre: false,
    7484   progress: false,
    7485   q: false,
    7486   rp: false,
    7487   rt: false,
    7488   ruby: false,
    7489   s: false,
    7490   samp: false,
    7491   script: false,
    7492   section: false,
    7493   select: false,
    7494   small: false,
    7495   source: true,
    7496   span: false,
    7497   strong: false,
    7498   style: false,
    7499   sub: false,
    7500   summary: false,
    7501   sup: false,
    7502   table: false,
    7503   tbody: false,
    7504   td: false,
    7505   textarea: false, // NOTE: Injected, see `ReactDOMTextarea`.
    7506   tfoot: false,
    7507   th: false,
    7508   thead: false,
    7509   time: false,
    7510   title: false,
    7511   tr: false,
    7512   track: true,
    7513   u: false,
    7514   ul: false,
    7515   'var': false,
    7516   video: false,
    7517   wbr: true,
     7340  a: 'a',
     7341  abbr: 'abbr',
     7342  address: 'address',
     7343  area: 'area',
     7344  article: 'article',
     7345  aside: 'aside',
     7346  audio: 'audio',
     7347  b: 'b',
     7348  base: 'base',
     7349  bdi: 'bdi',
     7350  bdo: 'bdo',
     7351  big: 'big',
     7352  blockquote: 'blockquote',
     7353  body: 'body',
     7354  br: 'br',
     7355  button: 'button',
     7356  canvas: 'canvas',
     7357  caption: 'caption',
     7358  cite: 'cite',
     7359  code: 'code',
     7360  col: 'col',
     7361  colgroup: 'colgroup',
     7362  data: 'data',
     7363  datalist: 'datalist',
     7364  dd: 'dd',
     7365  del: 'del',
     7366  details: 'details',
     7367  dfn: 'dfn',
     7368  dialog: 'dialog',
     7369  div: 'div',
     7370  dl: 'dl',
     7371  dt: 'dt',
     7372  em: 'em',
     7373  embed: 'embed',
     7374  fieldset: 'fieldset',
     7375  figcaption: 'figcaption',
     7376  figure: 'figure',
     7377  footer: 'footer',
     7378  form: 'form',
     7379  h1: 'h1',
     7380  h2: 'h2',
     7381  h3: 'h3',
     7382  h4: 'h4',
     7383  h5: 'h5',
     7384  h6: 'h6',
     7385  head: 'head',
     7386  header: 'header',
     7387  hr: 'hr',
     7388  html: 'html',
     7389  i: 'i',
     7390  iframe: 'iframe',
     7391  img: 'img',
     7392  input: 'input',
     7393  ins: 'ins',
     7394  kbd: 'kbd',
     7395  keygen: 'keygen',
     7396  label: 'label',
     7397  legend: 'legend',
     7398  li: 'li',
     7399  link: 'link',
     7400  main: 'main',
     7401  map: 'map',
     7402  mark: 'mark',
     7403  menu: 'menu',
     7404  menuitem: 'menuitem',
     7405  meta: 'meta',
     7406  meter: 'meter',
     7407  nav: 'nav',
     7408  noscript: 'noscript',
     7409  object: 'object',
     7410  ol: 'ol',
     7411  optgroup: 'optgroup',
     7412  option: 'option',
     7413  output: 'output',
     7414  p: 'p',
     7415  param: 'param',
     7416  picture: 'picture',
     7417  pre: 'pre',
     7418  progress: 'progress',
     7419  q: 'q',
     7420  rp: 'rp',
     7421  rt: 'rt',
     7422  ruby: 'ruby',
     7423  s: 's',
     7424  samp: 'samp',
     7425  script: 'script',
     7426  section: 'section',
     7427  select: 'select',
     7428  small: 'small',
     7429  source: 'source',
     7430  span: 'span',
     7431  strong: 'strong',
     7432  style: 'style',
     7433  sub: 'sub',
     7434  summary: 'summary',
     7435  sup: 'sup',
     7436  table: 'table',
     7437  tbody: 'tbody',
     7438  td: 'td',
     7439  textarea: 'textarea',
     7440  tfoot: 'tfoot',
     7441  th: 'th',
     7442  thead: 'thead',
     7443  time: 'time',
     7444  title: 'title',
     7445  tr: 'tr',
     7446  track: 'track',
     7447  u: 'u',
     7448  ul: 'ul',
     7449  'var': 'var',
     7450  video: 'video',
     7451  wbr: 'wbr',
    75187452
    75197453  // SVG
    7520   circle: false,
    7521   defs: false,
    7522   ellipse: false,
    7523   g: false,
    7524   line: false,
    7525   linearGradient: false,
    7526   mask: false,
    7527   path: false,
    7528   pattern: false,
    7529   polygon: false,
    7530   polyline: false,
    7531   radialGradient: false,
    7532   rect: false,
    7533   stop: false,
    7534   svg: false,
    7535   text: false,
    7536   tspan: false
    7537 }, createDOMComponentClass);
    7538 
    7539 var injection = {
    7540   injectComponentClasses: function(componentClasses) {
    7541     mergeInto(ReactDOM, componentClasses);
    7542   }
    7543 };
    7544 
    7545 ReactDOM.injection = injection;
     7454  circle: 'circle',
     7455  defs: 'defs',
     7456  ellipse: 'ellipse',
     7457  g: 'g',
     7458  line: 'line',
     7459  linearGradient: 'linearGradient',
     7460  mask: 'mask',
     7461  path: 'path',
     7462  pattern: 'pattern',
     7463  polygon: 'polygon',
     7464  polyline: 'polyline',
     7465  radialGradient: 'radialGradient',
     7466  rect: 'rect',
     7467  stop: 'stop',
     7468  svg: 'svg',
     7469  text: 'text',
     7470  tspan: 'tspan'
     7471
     7472}, createDOMFactory);
    75467473
    75477474module.exports = ReactDOM;
    75487475
    7549 },{"./ReactDOMComponent":43,"./ReactDescriptor":56,"./ReactDescriptorValidator":57,"./mapObject":142,"./mergeInto":146}],42:[function(_dereq_,module,exports){
    7550 /**
    7551  * Copyright 2013-2014 Facebook, Inc.
    7552  *
    7553  * Licensed under the Apache License, Version 2.0 (the "License");
    7554  * you may not use this file except in compliance with the License.
    7555  * You may obtain a copy of the License at
    7556  *
    7557  * http://www.apache.org/licenses/LICENSE-2.0
    7558  *
    7559  * Unless required by applicable law or agreed to in writing, software
    7560  * distributed under the License is distributed on an "AS IS" BASIS,
    7561  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    7562  * See the License for the specific language governing permissions and
    7563  * limitations under the License.
     7476},{"./ReactElement":58,"./ReactElementValidator":59,"./ReactLegacyElement":67,"./mapObject":148}],44:[function(_dereq_,module,exports){
     7477/**
     7478 * Copyright 2013-2014, Facebook, Inc.
     7479 * All rights reserved.
     7480 *
     7481 * This source code is licensed under the BSD-style license found in the
     7482 * LICENSE file in the root directory of this source tree. An additional grant
     7483 * of patent rights can be found in the PATENTS file in the same directory.
    75647484 *
    75657485 * @providesModule ReactDOMButton
     
    75717491var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin");
    75727492var ReactCompositeComponent = _dereq_("./ReactCompositeComponent");
     7493var ReactElement = _dereq_("./ReactElement");
    75737494var ReactDOM = _dereq_("./ReactDOM");
    75747495
    75757496var keyMirror = _dereq_("./keyMirror");
    75767497
    7577 // Store a reference to the <button> `ReactDOMComponent`.
    7578 var button = ReactDOM.button;
     7498// Store a reference to the <button> `ReactDOMComponent`. TODO: use string
     7499var button = ReactElement.createFactory(ReactDOM.button.type);
    75797500
    75807501var mouseListenerNames = keyMirror({
     
    76187539module.exports = ReactDOMButton;
    76197540
    7620 },{"./AutoFocusMixin":1,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./keyMirror":140}],43:[function(_dereq_,module,exports){
    7621 /**
    7622  * Copyright 2013-2014 Facebook, Inc.
    7623  *
    7624  * Licensed under the Apache License, Version 2.0 (the "License");
    7625  * you may not use this file except in compliance with the License.
    7626  * You may obtain a copy of the License at
    7627  *
    7628  * http://www.apache.org/licenses/LICENSE-2.0
    7629  *
    7630  * Unless required by applicable law or agreed to in writing, software
    7631  * distributed under the License is distributed on an "AS IS" BASIS,
    7632  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    7633  * See the License for the specific language governing permissions and
    7634  * limitations under the License.
     7541},{"./AutoFocusMixin":2,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58,"./keyMirror":146}],45:[function(_dereq_,module,exports){
     7542/**
     7543 * Copyright 2013-2014, Facebook, Inc.
     7544 * All rights reserved.
     7545 *
     7546 * This source code is licensed under the BSD-style license found in the
     7547 * LICENSE file in the root directory of this source tree. An additional grant
     7548 * of patent rights can be found in the PATENTS file in the same directory.
    76357549 *
    76367550 * @providesModule ReactDOMComponent
     
    76507564var ReactPerf = _dereq_("./ReactPerf");
    76517565
     7566var assign = _dereq_("./Object.assign");
    76527567var escapeTextForBrowser = _dereq_("./escapeTextForBrowser");
    76537568var invariant = _dereq_("./invariant");
     7569var isEventSupported = _dereq_("./isEventSupported");
    76547570var keyOf = _dereq_("./keyOf");
    7655 var merge = _dereq_("./merge");
    7656 var mixInto = _dereq_("./mixInto");
     7571var monitorCodeUse = _dereq_("./monitorCodeUse");
    76577572
    76587573var deleteListener = ReactBrowserEventEmitter.deleteListener;
     
    76797594    'Can only set one of `children` or `props.dangerouslySetInnerHTML`.'
    76807595  ) : invariant(props.children == null || props.dangerouslySetInnerHTML == null));
     7596  if ("production" !== "development") {
     7597    if (props.contentEditable && props.children != null) {
     7598      console.warn(
     7599        'A component is `contentEditable` and contains `children` managed by ' +
     7600        'React. It is now your responsibility to guarantee that none of those '+
     7601        'nodes are unexpectedly modified or duplicated. This is probably not ' +
     7602        'intentional.'
     7603      );
     7604    }
     7605  }
    76817606  ("production" !== "development" ? invariant(
    76827607    props.style == null || typeof props.style === 'object',
     
    76877612
    76887613function putListener(id, registrationName, listener, transaction) {
     7614  if ("production" !== "development") {
     7615    // IE8 has no API for event capturing and the `onScroll` event doesn't
     7616    // bubble.
     7617    if (registrationName === 'onScroll' &&
     7618        !isEventSupported('scroll', true)) {
     7619      monitorCodeUse('react_no_scroll_event');
     7620      console.warn('This browser doesn\'t support the `onScroll` event');
     7621    }
     7622  }
    76897623  var container = ReactMount.findReactContainerForID(id);
    76907624  if (container) {
     
    77017635}
    77027636
    7703 
    7704 /**
     7637// For HTML, certain tags should omit their close tag. We keep a whitelist for
     7638// those special cased tags.
     7639
     7640var omittedCloseTags = {
     7641  'area': true,
     7642  'base': true,
     7643  'br': true,
     7644  'col': true,
     7645  'embed': true,
     7646  'hr': true,
     7647  'img': true,
     7648  'input': true,
     7649  'keygen': true,
     7650  'link': true,
     7651  'meta': true,
     7652  'param': true,
     7653  'source': true,
     7654  'track': true,
     7655  'wbr': true
     7656  // NOTE: menuitem's close tag should be omitted, but that causes problems.
     7657};
     7658
     7659// We accept any tag to be rendered but since this gets injected into abitrary
     7660// HTML, we want to make sure that it's a safe tag.
     7661// http://www.w3.org/TR/REC-xml/#NT-Name
     7662
     7663var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/; // Simplified subset
     7664var validatedTagCache = {};
     7665var hasOwnProperty = {}.hasOwnProperty;
     7666
     7667function validateDangerousTag(tag) {
     7668  if (!hasOwnProperty.call(validatedTagCache, tag)) {
     7669    ("production" !== "development" ? invariant(VALID_TAG_REGEX.test(tag), 'Invalid tag: %s', tag) : invariant(VALID_TAG_REGEX.test(tag)));
     7670    validatedTagCache[tag] = true;
     7671  }
     7672}
     7673
     7674/**
     7675 * Creates a new React class that is idempotent and capable of containing other
     7676 * React components. It accepts event listeners and DOM properties that are
     7677 * valid according to `DOMProperty`.
     7678 *
     7679 *  - Event listeners: `onClick`, `onMouseDown`, etc.
     7680 *  - DOM properties: `className`, `name`, `title`, etc.
     7681 *
     7682 * The `style` property functions differently from the DOM API. It accepts an
     7683 * object mapping of style properties to values.
     7684 *
    77057685 * @constructor ReactDOMComponent
    77067686 * @extends ReactComponent
    77077687 * @extends ReactMultiChild
    77087688 */
    7709 function ReactDOMComponent(tag, omitClose) {
    7710   this._tagOpen = '<' + tag;
    7711   this._tagClose = omitClose ? '' : '</' + tag + '>';
     7689function ReactDOMComponent(tag) {
     7690  validateDangerousTag(tag);
     7691  this._tag = tag;
    77127692  this.tagName = tag.toUpperCase();
    77137693}
     7694
     7695ReactDOMComponent.displayName = 'ReactDOMComponent';
    77147696
    77157697ReactDOMComponent.Mixin = {
     
    77367718      );
    77377719      assertValidProps(this.props);
     7720      var closeTag = omittedCloseTags[this._tag] ? '' : '</' + this._tag + '>';
    77387721      return (
    77397722        this._createOpenTagMarkupAndPutListeners(transaction) +
    77407723        this._createContentMarkup(transaction) +
    7741         this._tagClose
     7724        closeTag
    77427725      );
    77437726    }
     
    77587741  _createOpenTagMarkupAndPutListeners: function(transaction) {
    77597742    var props = this.props;
    7760     var ret = this._tagOpen;
     7743    var ret = '<' + this._tag;
    77617744
    77627745    for (var propKey in props) {
     
    77737756        if (propKey === STYLE) {
    77747757          if (propValue) {
    7775             propValue = props.style = merge(props.style);
     7758            propValue = props.style = assign({}, props.style);
    77767759          }
    77777760          propValue = CSSPropertyOperations.createMarkupForStyles(propValue);
     
    78267809  },
    78277810
    7828   receiveComponent: function(nextDescriptor, transaction) {
    7829     if (nextDescriptor === this._descriptor &&
    7830         nextDescriptor._owner != null) {
    7831       // Since descriptors are immutable after the owner is rendered,
     7811  receiveComponent: function(nextElement, transaction) {
     7812    if (nextElement === this._currentElement &&
     7813        nextElement._owner != null) {
     7814      // Since elements are immutable after the owner is rendered,
    78327815      // we can do a cheap identity compare here to determine if this is a
    78337816      // superfluous reconcile. It's possible for state to be mutable but such
    78347817      // change should trigger an update of the owner which would recreate
    7835       // the descriptor. We explicitly check for the existence of an owner since
    7836       // it's possible for a descriptor created outside a composite to be
     7818      // the element. We explicitly check for the existence of an owner since
     7819      // it's possible for a element created outside a composite to be
    78377820      // deeply mutated and reused.
    78387821      return;
     
    78417824    ReactComponent.Mixin.receiveComponent.call(
    78427825      this,
    7843       nextDescriptor,
     7826      nextElement,
    78447827      transaction
    78457828    );
     
    78517834   *
    78527835   * @param {ReactReconcileTransaction} transaction
    7853    * @param {ReactDescriptor} prevDescriptor
     7836   * @param {ReactElement} prevElement
    78547837   * @internal
    78557838   * @overridable
     
    78587841    'ReactDOMComponent',
    78597842    'updateComponent',
    7860     function(transaction, prevDescriptor) {
    7861       assertValidProps(this._descriptor.props);
     7843    function(transaction, prevElement) {
     7844      assertValidProps(this._currentElement.props);
    78627845      ReactComponent.Mixin.updateComponent.call(
    78637846        this,
    78647847        transaction,
    7865         prevDescriptor
     7848        prevElement
    78667849      );
    7867       this._updateDOMProperties(prevDescriptor.props, transaction);
    7868       this._updateDOMChildren(prevDescriptor.props, transaction);
     7850      this._updateDOMProperties(prevElement.props, transaction);
     7851      this._updateDOMChildren(prevElement.props, transaction);
    78697852    }
    78707853  ),
     
    79227905      if (propKey === STYLE) {
    79237906        if (nextProp) {
    7924           nextProp = nextProps.style = merge(nextProp);
     7907          nextProp = nextProps.style = assign({}, nextProp);
    79257908        }
    79267909        if (lastProp) {
     
    80318014};
    80328015
    8033 mixInto(ReactDOMComponent, ReactComponent.Mixin);
    8034 mixInto(ReactDOMComponent, ReactDOMComponent.Mixin);
    8035 mixInto(ReactDOMComponent, ReactMultiChild.Mixin);
    8036 mixInto(ReactDOMComponent, ReactBrowserComponentMixin);
     8016assign(
     8017  ReactDOMComponent.prototype,
     8018  ReactComponent.Mixin,
     8019  ReactDOMComponent.Mixin,
     8020  ReactMultiChild.Mixin,
     8021  ReactBrowserComponentMixin
     8022);
    80378023
    80388024module.exports = ReactDOMComponent;
    80398025
    8040 },{"./CSSPropertyOperations":5,"./DOMProperty":11,"./DOMPropertyOperations":12,"./ReactBrowserComponentMixin":30,"./ReactBrowserEventEmitter":31,"./ReactComponent":35,"./ReactMount":67,"./ReactMultiChild":68,"./ReactPerf":71,"./escapeTextForBrowser":118,"./invariant":134,"./keyOf":141,"./merge":144,"./mixInto":147}],44:[function(_dereq_,module,exports){
    8041 /**
    8042  * Copyright 2013-2014 Facebook, Inc.
    8043  *
    8044  * Licensed under the Apache License, Version 2.0 (the "License");
    8045  * you may not use this file except in compliance with the License.
    8046  * You may obtain a copy of the License at
    8047  *
    8048  * http://www.apache.org/licenses/LICENSE-2.0
    8049  *
    8050  * Unless required by applicable law or agreed to in writing, software
    8051  * distributed under the License is distributed on an "AS IS" BASIS,
    8052  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    8053  * See the License for the specific language governing permissions and
    8054  * limitations under the License.
     8026},{"./CSSPropertyOperations":6,"./DOMProperty":12,"./DOMPropertyOperations":13,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactBrowserEventEmitter":33,"./ReactComponent":37,"./ReactMount":70,"./ReactMultiChild":71,"./ReactPerf":75,"./escapeTextForBrowser":123,"./invariant":140,"./isEventSupported":141,"./keyOf":147,"./monitorCodeUse":150}],46:[function(_dereq_,module,exports){
     8027/**
     8028 * Copyright 2013-2014, Facebook, Inc.
     8029 * All rights reserved.
     8030 *
     8031 * This source code is licensed under the BSD-style license found in the
     8032 * LICENSE file in the root directory of this source tree. An additional grant
     8033 * of patent rights can be found in the PATENTS file in the same directory.
    80558034 *
    80568035 * @providesModule ReactDOMForm
     
    80638042var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin");
    80648043var ReactCompositeComponent = _dereq_("./ReactCompositeComponent");
     8044var ReactElement = _dereq_("./ReactElement");
    80658045var ReactDOM = _dereq_("./ReactDOM");
    80668046
    8067 // Store a reference to the <form> `ReactDOMComponent`.
    8068 var form = ReactDOM.form;
     8047// Store a reference to the <form> `ReactDOMComponent`. TODO: use string
     8048var form = ReactElement.createFactory(ReactDOM.form.type);
    80698049
    80708050/**
     
    80838063    // `jshint` fails to parse JSX so in order for linting to work in the open
    80848064    // source repo, we need to just use `ReactDOM.form`.
    8085     return this.transferPropsTo(form(null, this.props.children));
     8065    return form(this.props);
    80868066  },
    80878067
     
    80948074module.exports = ReactDOMForm;
    80958075
    8096 },{"./EventConstants":16,"./LocalEventTrapMixin":26,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41}],45:[function(_dereq_,module,exports){
    8097 /**
    8098  * Copyright 2013-2014 Facebook, Inc.
    8099  *
    8100  * Licensed under the Apache License, Version 2.0 (the "License");
    8101  * you may not use this file except in compliance with the License.
    8102  * You may obtain a copy of the License at
    8103  *
    8104  * http://www.apache.org/licenses/LICENSE-2.0
    8105  *
    8106  * Unless required by applicable law or agreed to in writing, software
    8107  * distributed under the License is distributed on an "AS IS" BASIS,
    8108  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    8109  * See the License for the specific language governing permissions and
    8110  * limitations under the License.
     8076},{"./EventConstants":17,"./LocalEventTrapMixin":27,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58}],47:[function(_dereq_,module,exports){
     8077/**
     8078 * Copyright 2013-2014, Facebook, Inc.
     8079 * All rights reserved.
     8080 *
     8081 * This source code is licensed under the BSD-style license found in the
     8082 * LICENSE file in the root directory of this source tree. An additional grant
     8083 * of patent rights can be found in the PATENTS file in the same directory.
    81118084 *
    81128085 * @providesModule ReactDOMIDOperations
     
    82858258module.exports = ReactDOMIDOperations;
    82868259
    8287 },{"./CSSPropertyOperations":5,"./DOMChildrenOperations":10,"./DOMPropertyOperations":12,"./ReactMount":67,"./ReactPerf":71,"./invariant":134,"./setInnerHTML":152}],46:[function(_dereq_,module,exports){
    8288 /**
    8289  * Copyright 2013-2014 Facebook, Inc.
    8290  *
    8291  * Licensed under the Apache License, Version 2.0 (the "License");
    8292  * you may not use this file except in compliance with the License.
    8293  * You may obtain a copy of the License at
    8294  *
    8295  * http://www.apache.org/licenses/LICENSE-2.0
    8296  *
    8297  * Unless required by applicable law or agreed to in writing, software
    8298  * distributed under the License is distributed on an "AS IS" BASIS,
    8299  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    8300  * See the License for the specific language governing permissions and
    8301  * limitations under the License.
     8260},{"./CSSPropertyOperations":6,"./DOMChildrenOperations":11,"./DOMPropertyOperations":13,"./ReactMount":70,"./ReactPerf":75,"./invariant":140,"./setInnerHTML":154}],48:[function(_dereq_,module,exports){
     8261/**
     8262 * Copyright 2013-2014, Facebook, Inc.
     8263 * All rights reserved.
     8264 *
     8265 * This source code is licensed under the BSD-style license found in the
     8266 * LICENSE file in the root directory of this source tree. An additional grant
     8267 * of patent rights can be found in the PATENTS file in the same directory.
    83028268 *
    83038269 * @providesModule ReactDOMImg
     
    83108276var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin");
    83118277var ReactCompositeComponent = _dereq_("./ReactCompositeComponent");
     8278var ReactElement = _dereq_("./ReactElement");
    83128279var ReactDOM = _dereq_("./ReactDOM");
    83138280
    8314 // Store a reference to the <img> `ReactDOMComponent`.
    8315 var img = ReactDOM.img;
     8281// Store a reference to the <img> `ReactDOMComponent`. TODO: use string
     8282var img = ReactElement.createFactory(ReactDOM.img.type);
    83168283
    83178284/**
     
    83398306module.exports = ReactDOMImg;
    83408307
    8341 },{"./EventConstants":16,"./LocalEventTrapMixin":26,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41}],47:[function(_dereq_,module,exports){
    8342 /**
    8343  * Copyright 2013-2014 Facebook, Inc.
    8344  *
    8345  * Licensed under the Apache License, Version 2.0 (the "License");
    8346  * you may not use this file except in compliance with the License.
    8347  * You may obtain a copy of the License at
    8348  *
    8349  * http://www.apache.org/licenses/LICENSE-2.0
    8350  *
    8351  * Unless required by applicable law or agreed to in writing, software
    8352  * distributed under the License is distributed on an "AS IS" BASIS,
    8353  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    8354  * See the License for the specific language governing permissions and
    8355  * limitations under the License.
     8308},{"./EventConstants":17,"./LocalEventTrapMixin":27,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58}],49:[function(_dereq_,module,exports){
     8309/**
     8310 * Copyright 2013-2014, Facebook, Inc.
     8311 * All rights reserved.
     8312 *
     8313 * This source code is licensed under the BSD-style license found in the
     8314 * LICENSE file in the root directory of this source tree. An additional grant
     8315 * of patent rights can be found in the PATENTS file in the same directory.
    83568316 *
    83578317 * @providesModule ReactDOMInput
     
    83658325var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin");
    83668326var ReactCompositeComponent = _dereq_("./ReactCompositeComponent");
     8327var ReactElement = _dereq_("./ReactElement");
    83678328var ReactDOM = _dereq_("./ReactDOM");
    83688329var ReactMount = _dereq_("./ReactMount");
    8369 
     8330var ReactUpdates = _dereq_("./ReactUpdates");
     8331
     8332var assign = _dereq_("./Object.assign");
    83708333var invariant = _dereq_("./invariant");
    8371 var merge = _dereq_("./merge");
    8372 
    8373 // Store a reference to the <input> `ReactDOMComponent`.
    8374 var input = ReactDOM.input;
     8334
     8335// Store a reference to the <input> `ReactDOMComponent`. TODO: use string
     8336var input = ReactElement.createFactory(ReactDOM.input.type);
    83758337
    83768338var instancesByReactID = {};
     8339
     8340function forceUpdateIfMounted() {
     8341  /*jshint validthis:true */
     8342  if (this.isMounted()) {
     8343    this.forceUpdate();
     8344  }
     8345}
    83778346
    83788347/**
     
    84008369    var defaultValue = this.props.defaultValue;
    84018370    return {
    8402       checked: this.props.defaultChecked || false,
    8403       value: defaultValue != null ? defaultValue : null
     8371      initialChecked: this.props.defaultChecked || false,
     8372      initialValue: defaultValue != null ? defaultValue : null
    84048373    };
    8405   },
    8406 
    8407   shouldComponentUpdate: function() {
    8408     // Defer any updates to this component during the `onChange` handler.
    8409     return !this._isChanging;
    84108374  },
    84118375
    84128376  render: function() {
    84138377    // Clone `this.props` so we don't mutate the input.
    8414     var props = merge(this.props);
     8378    var props = assign({}, this.props);
    84158379
    84168380    props.defaultChecked = null;
     
    84188382
    84198383    var value = LinkedValueUtils.getValue(this);
    8420     props.value = value != null ? value : this.state.value;
     8384    props.value = value != null ? value : this.state.initialValue;
    84218385
    84228386    var checked = LinkedValueUtils.getChecked(this);
    8423     props.checked = checked != null ? checked : this.state.checked;
     8387    props.checked = checked != null ? checked : this.state.initialChecked;
    84248388
    84258389    props.onChange = this._handleChange;
     
    84618425    var onChange = LinkedValueUtils.getOnChange(this);
    84628426    if (onChange) {
    8463       this._isChanging = true;
    84648427      returnValue = onChange.call(this, event);
    8465       this._isChanging = false;
    8466     }
    8467     this.setState({
    8468       checked: event.target.checked,
    8469       value: event.target.value
    8470     });
     8428    }
     8429    // Here we use asap to wait until all updates have propagated, which
     8430    // is important when using controlled components within layers:
     8431    // https://github.com/facebook/react/issues/1698
     8432    ReactUpdates.asap(forceUpdateIfMounted, this);
    84718433
    84728434    var name = this.props.name;
     
    85068468          otherID
    85078469        ) : invariant(otherInstance));
    8508         // In some cases, this will actually change the `checked` state value.
    8509         // In other cases, there's no change but this forces a reconcile upon
    8510         // which componentDidUpdate will reset the DOM property to whatever it
    8511         // should be.
    8512         otherInstance.setState({
    8513           checked: false
    8514         });
     8470        // If this is a controlled radio button group, forcing the input that
     8471        // was previously checked to update will cause it to be come re-checked
     8472        // as appropriate.
     8473        ReactUpdates.asap(forceUpdateIfMounted, otherInstance);
    85158474      }
    85168475    }
     
    85238482module.exports = ReactDOMInput;
    85248483
    8525 },{"./AutoFocusMixin":1,"./DOMPropertyOperations":12,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./ReactMount":67,"./invariant":134,"./merge":144}],48:[function(_dereq_,module,exports){
    8526 /**
    8527  * Copyright 2013-2014 Facebook, Inc.
    8528  *
    8529  * Licensed under the Apache License, Version 2.0 (the "License");
    8530  * you may not use this file except in compliance with the License.
    8531  * You may obtain a copy of the License at
    8532  *
    8533  * http://www.apache.org/licenses/LICENSE-2.0
    8534  *
    8535  * Unless required by applicable law or agreed to in writing, software
    8536  * distributed under the License is distributed on an "AS IS" BASIS,
    8537  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    8538  * See the License for the specific language governing permissions and
    8539  * limitations under the License.
     8484},{"./AutoFocusMixin":2,"./DOMPropertyOperations":13,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58,"./ReactMount":70,"./ReactUpdates":91,"./invariant":140}],50:[function(_dereq_,module,exports){
     8485/**
     8486 * Copyright 2013-2014, Facebook, Inc.
     8487 * All rights reserved.
     8488 *
     8489 * This source code is licensed under the BSD-style license found in the
     8490 * LICENSE file in the root directory of this source tree. An additional grant
     8491 * of patent rights can be found in the PATENTS file in the same directory.
    85408492 *
    85418493 * @providesModule ReactDOMOption
     
    85468498var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin");
    85478499var ReactCompositeComponent = _dereq_("./ReactCompositeComponent");
     8500var ReactElement = _dereq_("./ReactElement");
    85488501var ReactDOM = _dereq_("./ReactDOM");
    85498502
    85508503var warning = _dereq_("./warning");
    85518504
    8552 // Store a reference to the <option> `ReactDOMComponent`.
    8553 var option = ReactDOM.option;
     8505// Store a reference to the <option> `ReactDOMComponent`. TODO: use string
     8506var option = ReactElement.createFactory(ReactDOM.option.type);
    85548507
    85558508/**
     
    85808533module.exports = ReactDOMOption;
    85818534
    8582 },{"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./warning":158}],49:[function(_dereq_,module,exports){
    8583 /**
    8584  * Copyright 2013-2014 Facebook, Inc.
    8585  *
    8586  * Licensed under the Apache License, Version 2.0 (the "License");
    8587  * you may not use this file except in compliance with the License.
    8588  * You may obtain a copy of the License at
    8589  *
    8590  * http://www.apache.org/licenses/LICENSE-2.0
    8591  *
    8592  * Unless required by applicable law or agreed to in writing, software
    8593  * distributed under the License is distributed on an "AS IS" BASIS,
    8594  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    8595  * See the License for the specific language governing permissions and
    8596  * limitations under the License.
     8535},{"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58,"./warning":160}],51:[function(_dereq_,module,exports){
     8536/**
     8537 * Copyright 2013-2014, Facebook, Inc.
     8538 * All rights reserved.
     8539 *
     8540 * This source code is licensed under the BSD-style license found in the
     8541 * LICENSE file in the root directory of this source tree. An additional grant
     8542 * of patent rights can be found in the PATENTS file in the same directory.
    85978543 *
    85988544 * @providesModule ReactDOMSelect
     
    86058551var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin");
    86068552var ReactCompositeComponent = _dereq_("./ReactCompositeComponent");
     8553var ReactElement = _dereq_("./ReactElement");
    86078554var ReactDOM = _dereq_("./ReactDOM");
    8608 
    8609 var merge = _dereq_("./merge");
    8610 
    8611 // Store a reference to the <select> `ReactDOMComponent`.
    8612 var select = ReactDOM.select;
     8555var ReactUpdates = _dereq_("./ReactUpdates");
     8556
     8557var assign = _dereq_("./Object.assign");
     8558
     8559// Store a reference to the <select> `ReactDOMComponent`. TODO: use string
     8560var select = ReactElement.createFactory(ReactDOM.select.type);
     8561
     8562function updateWithPendingValueIfMounted() {
     8563  /*jshint validthis:true */
     8564  if (this.isMounted()) {
     8565    this.setState({value: this._pendingValue});
     8566    this._pendingValue = 0;
     8567  }
     8568}
    86138569
    86148570/**
     
    86978653  },
    86988654
     8655  componentWillMount: function() {
     8656    this._pendingValue = null;
     8657  },
     8658
    86998659  componentWillReceiveProps: function(nextProps) {
    87008660    if (!this.props.multiple && nextProps.multiple) {
     
    87058665  },
    87068666
    8707   shouldComponentUpdate: function() {
    8708     // Defer any updates to this component during the `onChange` handler.
    8709     return !this._isChanging;
    8710   },
    8711 
    87128667  render: function() {
    87138668    // Clone `this.props` so we don't mutate the input.
    8714     var props = merge(this.props);
     8669    var props = assign({}, this.props);
    87158670
    87168671    props.onChange = this._handleChange;
     
    87378692    var onChange = LinkedValueUtils.getOnChange(this);
    87388693    if (onChange) {
    8739       this._isChanging = true;
    87408694      returnValue = onChange.call(this, event);
    8741       this._isChanging = false;
    87428695    }
    87438696
     
    87558708    }
    87568709
    8757     this.setState({value: selectedValue});
     8710    this._pendingValue = selectedValue;
     8711    ReactUpdates.asap(updateWithPendingValueIfMounted, this);
    87588712    return returnValue;
    87598713  }
     
    87638717module.exports = ReactDOMSelect;
    87648718
    8765 },{"./AutoFocusMixin":1,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./merge":144}],50:[function(_dereq_,module,exports){
    8766 /**
    8767  * Copyright 2013-2014 Facebook, Inc.
    8768  *
    8769  * Licensed under the Apache License, Version 2.0 (the "License");
    8770  * you may not use this file except in compliance with the License.
    8771  * You may obtain a copy of the License at
    8772  *
    8773  * http://www.apache.org/licenses/LICENSE-2.0
    8774  *
    8775  * Unless required by applicable law or agreed to in writing, software
    8776  * distributed under the License is distributed on an "AS IS" BASIS,
    8777  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    8778  * See the License for the specific language governing permissions and
    8779  * limitations under the License.
     8719},{"./AutoFocusMixin":2,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58,"./ReactUpdates":91}],52:[function(_dereq_,module,exports){
     8720/**
     8721 * Copyright 2013-2014, Facebook, Inc.
     8722 * All rights reserved.
     8723 *
     8724 * This source code is licensed under the BSD-style license found in the
     8725 * LICENSE file in the root directory of this source tree. An additional grant
     8726 * of patent rights can be found in the PATENTS file in the same directory.
    87808727 *
    87818728 * @providesModule ReactDOMSelection
     
    88368783 */
    88378784function getModernOffsets(node) {
    8838   var selection = window.getSelection();
    8839 
    8840   if (selection.rangeCount === 0) {
     8785  var selection = window.getSelection && window.getSelection();
     8786
     8787  if (!selection || selection.rangeCount === 0) {
    88418788    return null;
    88428789  }
     
    88808827  detectionRange.setEnd(focusNode, focusOffset);
    88818828  var isBackward = detectionRange.collapsed;
    8882   detectionRange.detach();
    88838829
    88848830  return {
     
    89278873 */
    89288874function setModernOffsets(node, offsets) {
     8875  if (!window.getSelection) {
     8876    return;
     8877  }
     8878
    89298879  var selection = window.getSelection();
    8930 
    89318880  var length = node[getTextContentAccessor()].length;
    89328881  var start = Math.min(offsets.start, length);
     
    89578906      selection.addRange(range);
    89588907    }
    8959 
    8960     range.detach();
    89618908  }
    89628909}
     
    89798926module.exports = ReactDOMSelection;
    89808927
    8981 },{"./ExecutionEnvironment":22,"./getNodeForCharacterOffset":127,"./getTextContentAccessor":129}],51:[function(_dereq_,module,exports){
    8982 /**
    8983  * Copyright 2013-2014 Facebook, Inc.
    8984  *
    8985  * Licensed under the Apache License, Version 2.0 (the "License");
    8986  * you may not use this file except in compliance with the License.
    8987  * You may obtain a copy of the License at
    8988  *
    8989  * http://www.apache.org/licenses/LICENSE-2.0
    8990  *
    8991  * Unless required by applicable law or agreed to in writing, software
    8992  * distributed under the License is distributed on an "AS IS" BASIS,
    8993  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    8994  * See the License for the specific language governing permissions and
    8995  * limitations under the License.
     8928},{"./ExecutionEnvironment":23,"./getNodeForCharacterOffset":133,"./getTextContentAccessor":135}],53:[function(_dereq_,module,exports){
     8929/**
     8930 * Copyright 2013-2014, Facebook, Inc.
     8931 * All rights reserved.
     8932 *
     8933 * This source code is licensed under the BSD-style license found in the
     8934 * LICENSE file in the root directory of this source tree. An additional grant
     8935 * of patent rights can be found in the PATENTS file in the same directory.
    89968936 *
    89978937 * @providesModule ReactDOMTextarea
     
    90058945var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin");
    90068946var ReactCompositeComponent = _dereq_("./ReactCompositeComponent");
     8947var ReactElement = _dereq_("./ReactElement");
    90078948var ReactDOM = _dereq_("./ReactDOM");
    9008 
     8949var ReactUpdates = _dereq_("./ReactUpdates");
     8950
     8951var assign = _dereq_("./Object.assign");
    90098952var invariant = _dereq_("./invariant");
    9010 var merge = _dereq_("./merge");
    90118953
    90128954var warning = _dereq_("./warning");
    90138955
    9014 // Store a reference to the <textarea> `ReactDOMComponent`.
    9015 var textarea = ReactDOM.textarea;
     8956// Store a reference to the <textarea> `ReactDOMComponent`. TODO: use string
     8957var textarea = ReactElement.createFactory(ReactDOM.textarea.type);
     8958
     8959function forceUpdateIfMounted() {
     8960  /*jshint validthis:true */
     8961  if (this.isMounted()) {
     8962    this.forceUpdate();
     8963  }
     8964}
    90168965
    90178966/**
     
    90749023  },
    90759024
    9076   shouldComponentUpdate: function() {
    9077     // Defer any updates to this component during the `onChange` handler.
    9078     return !this._isChanging;
    9079   },
    9080 
    90819025  render: function() {
    90829026    // Clone `this.props` so we don't mutate the input.
    9083     var props = merge(this.props);
     9027    var props = assign({}, this.props);
    90849028
    90859029    ("production" !== "development" ? invariant(
     
    91119055    var onChange = LinkedValueUtils.getOnChange(this);
    91129056    if (onChange) {
    9113       this._isChanging = true;
    91149057      returnValue = onChange.call(this, event);
    9115       this._isChanging = false;
    9116     }
    9117     this.setState({value: event.target.value});
     9058    }
     9059    ReactUpdates.asap(forceUpdateIfMounted, this);
    91189060    return returnValue;
    91199061  }
     
    91239065module.exports = ReactDOMTextarea;
    91249066
    9125 },{"./AutoFocusMixin":1,"./DOMPropertyOperations":12,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./invariant":134,"./merge":144,"./warning":158}],52:[function(_dereq_,module,exports){
    9126 /**
    9127  * Copyright 2013-2014 Facebook, Inc.
    9128  *
    9129  * Licensed under the Apache License, Version 2.0 (the "License");
    9130  * you may not use this file except in compliance with the License.
    9131  * You may obtain a copy of the License at
    9132  *
    9133  * http://www.apache.org/licenses/LICENSE-2.0
    9134  *
    9135  * Unless required by applicable law or agreed to in writing, software
    9136  * distributed under the License is distributed on an "AS IS" BASIS,
    9137  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    9138  * See the License for the specific language governing permissions and
    9139  * limitations under the License.
     9067},{"./AutoFocusMixin":2,"./DOMPropertyOperations":13,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58,"./ReactUpdates":91,"./invariant":140,"./warning":160}],54:[function(_dereq_,module,exports){
     9068/**
     9069 * Copyright 2013-2014, Facebook, Inc.
     9070 * All rights reserved.
     9071 *
     9072 * This source code is licensed under the BSD-style license found in the
     9073 * LICENSE file in the root directory of this source tree. An additional grant
     9074 * of patent rights can be found in the PATENTS file in the same directory.
    91409075 *
    91419076 * @providesModule ReactDefaultBatchingStrategy
     
    91479082var Transaction = _dereq_("./Transaction");
    91489083
     9084var assign = _dereq_("./Object.assign");
    91499085var emptyFunction = _dereq_("./emptyFunction");
    9150 var mixInto = _dereq_("./mixInto");
    91519086
    91529087var RESET_BATCHED_UPDATES = {
     
    91689103}
    91699104
    9170 mixInto(ReactDefaultBatchingStrategyTransaction, Transaction.Mixin);
    9171 mixInto(ReactDefaultBatchingStrategyTransaction, {
    9172   getTransactionWrappers: function() {
    9173     return TRANSACTION_WRAPPERS;
    9174   }
    9175 });
     9105assign(
     9106  ReactDefaultBatchingStrategyTransaction.prototype,
     9107  Transaction.Mixin,
     9108  {
     9109    getTransactionWrappers: function() {
     9110      return TRANSACTION_WRAPPERS;
     9111    }
     9112  }
     9113);
    91769114
    91779115var transaction = new ReactDefaultBatchingStrategyTransaction();
     
    92009138module.exports = ReactDefaultBatchingStrategy;
    92019139
    9202 },{"./ReactUpdates":87,"./Transaction":104,"./emptyFunction":116,"./mixInto":147}],53:[function(_dereq_,module,exports){
    9203 /**
    9204  * Copyright 2013-2014 Facebook, Inc.
    9205  *
    9206  * Licensed under the Apache License, Version 2.0 (the "License");
    9207  * you may not use this file except in compliance with the License.
    9208  * You may obtain a copy of the License at
    9209  *
    9210  * http://www.apache.org/licenses/LICENSE-2.0
    9211  *
    9212  * Unless required by applicable law or agreed to in writing, software
    9213  * distributed under the License is distributed on an "AS IS" BASIS,
    9214  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    9215  * See the License for the specific language governing permissions and
    9216  * limitations under the License.
     9140},{"./Object.assign":29,"./ReactUpdates":91,"./Transaction":107,"./emptyFunction":121}],55:[function(_dereq_,module,exports){
     9141/**
     9142 * Copyright 2013-2014, Facebook, Inc.
     9143 * All rights reserved.
     9144 *
     9145 * This source code is licensed under the BSD-style license found in the
     9146 * LICENSE file in the root directory of this source tree. An additional grant
     9147 * of patent rights can be found in the PATENTS file in the same directory.
    92179148 *
    92189149 * @providesModule ReactDefaultInjection
     
    92349165  _dereq_("./ReactComponentBrowserEnvironment");
    92359166var ReactDefaultBatchingStrategy = _dereq_("./ReactDefaultBatchingStrategy");
    9236 var ReactDOM = _dereq_("./ReactDOM");
     9167var ReactDOMComponent = _dereq_("./ReactDOMComponent");
    92379168var ReactDOMButton = _dereq_("./ReactDOMButton");
    92389169var ReactDOMForm = _dereq_("./ReactDOMForm");
     
    92799210  });
    92809211
    9281   ReactInjection.DOM.injectComponentClasses({
    9282     button: ReactDOMButton,
    9283     form: ReactDOMForm,
    9284     img: ReactDOMImg,
    9285     input: ReactDOMInput,
    9286     option: ReactDOMOption,
    9287     select: ReactDOMSelect,
    9288     textarea: ReactDOMTextarea,
    9289 
    9290     html: createFullPageComponent(ReactDOM.html),
    9291     head: createFullPageComponent(ReactDOM.head),
    9292     body: createFullPageComponent(ReactDOM.body)
     9212  ReactInjection.NativeComponent.injectGenericComponentClass(
     9213    ReactDOMComponent
     9214  );
     9215
     9216  ReactInjection.NativeComponent.injectComponentClasses({
     9217    'button': ReactDOMButton,
     9218    'form': ReactDOMForm,
     9219    'img': ReactDOMImg,
     9220    'input': ReactDOMInput,
     9221    'option': ReactDOMOption,
     9222    'select': ReactDOMSelect,
     9223    'textarea': ReactDOMTextarea,
     9224
     9225    'html': createFullPageComponent('html'),
     9226    'head': createFullPageComponent('head'),
     9227    'body': createFullPageComponent('body')
    92939228  });
    92949229
     
    93009235  ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);
    93019236
    9302   ReactInjection.EmptyComponent.injectEmptyComponent(ReactDOM.noscript);
     9237  ReactInjection.EmptyComponent.injectEmptyComponent('noscript');
    93039238
    93049239  ReactInjection.Updates.injectReconcileTransaction(
     
    93309265};
    93319266
    9332 },{"./BeforeInputEventPlugin":2,"./ChangeEventPlugin":7,"./ClientReactRootIndex":8,"./CompositionEventPlugin":9,"./DefaultEventPluginOrder":14,"./EnterLeaveEventPlugin":15,"./ExecutionEnvironment":22,"./HTMLDOMPropertyConfig":23,"./MobileSafariClickEventPlugin":27,"./ReactBrowserComponentMixin":30,"./ReactComponentBrowserEnvironment":36,"./ReactDOM":41,"./ReactDOMButton":42,"./ReactDOMForm":44,"./ReactDOMImg":46,"./ReactDOMInput":47,"./ReactDOMOption":48,"./ReactDOMSelect":49,"./ReactDOMTextarea":51,"./ReactDefaultBatchingStrategy":52,"./ReactDefaultPerf":54,"./ReactEventListener":61,"./ReactInjection":62,"./ReactInstanceHandles":64,"./ReactMount":67,"./SVGDOMPropertyConfig":89,"./SelectEventPlugin":90,"./ServerReactRootIndex":91,"./SimpleEventPlugin":92,"./createFullPageComponent":112}],54:[function(_dereq_,module,exports){
    9333 /**
    9334  * Copyright 2013-2014 Facebook, Inc.
    9335  *
    9336  * Licensed under the Apache License, Version 2.0 (the "License");
    9337  * you may not use this file except in compliance with the License.
    9338  * You may obtain a copy of the License at
    9339  *
    9340  * http://www.apache.org/licenses/LICENSE-2.0
    9341  *
    9342  * Unless required by applicable law or agreed to in writing, software
    9343  * distributed under the License is distributed on an "AS IS" BASIS,
    9344  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    9345  * See the License for the specific language governing permissions and
    9346  * limitations under the License.
     9267},{"./BeforeInputEventPlugin":3,"./ChangeEventPlugin":8,"./ClientReactRootIndex":9,"./CompositionEventPlugin":10,"./DefaultEventPluginOrder":15,"./EnterLeaveEventPlugin":16,"./ExecutionEnvironment":23,"./HTMLDOMPropertyConfig":24,"./MobileSafariClickEventPlugin":28,"./ReactBrowserComponentMixin":32,"./ReactComponentBrowserEnvironment":38,"./ReactDOMButton":44,"./ReactDOMComponent":45,"./ReactDOMForm":46,"./ReactDOMImg":48,"./ReactDOMInput":49,"./ReactDOMOption":50,"./ReactDOMSelect":51,"./ReactDOMTextarea":53,"./ReactDefaultBatchingStrategy":54,"./ReactDefaultPerf":56,"./ReactEventListener":63,"./ReactInjection":64,"./ReactInstanceHandles":66,"./ReactMount":70,"./SVGDOMPropertyConfig":92,"./SelectEventPlugin":93,"./ServerReactRootIndex":94,"./SimpleEventPlugin":95,"./createFullPageComponent":116}],56:[function(_dereq_,module,exports){
     9268/**
     9269 * Copyright 2013-2014, Facebook, Inc.
     9270 * All rights reserved.
     9271 *
     9272 * This source code is licensed under the BSD-style license found in the
     9273 * LICENSE file in the root directory of this source tree. An additional grant
     9274 * of patent rights can be found in the PATENTS file in the same directory.
    93479275 *
    93489276 * @providesModule ReactDefaultPerf
     
    94239351  },
    94249352
    9425   printWasted: function(measurements) {
    9426     measurements = measurements || ReactDefaultPerf._allMeasurements;
     9353  getMeasurementsSummaryMap: function(measurements) {
    94279354    var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(
    94289355      measurements,
    94299356      true
    94309357    );
    9431     console.table(summary.map(function(item) {
     9358    return summary.map(function(item) {
    94329359      return {
    94339360        'Owner > component': item.componentName,
     
    94359362        'Instances': item.count
    94369363      };
    9437     }));
     9364    });
     9365  },
     9366
     9367  printWasted: function(measurements) {
     9368    measurements = measurements || ReactDefaultPerf._allMeasurements;
     9369    console.table(ReactDefaultPerf.getMeasurementsSummaryMap(measurements));
    94389370    console.log(
    94399371      'Total time:',
     
    95939525module.exports = ReactDefaultPerf;
    95949526
    9595 },{"./DOMProperty":11,"./ReactDefaultPerfAnalysis":55,"./ReactMount":67,"./ReactPerf":71,"./performanceNow":151}],55:[function(_dereq_,module,exports){
    9596 /**
    9597  * Copyright 2013-2014 Facebook, Inc.
    9598  *
    9599  * Licensed under the Apache License, Version 2.0 (the "License");
    9600  * you may not use this file except in compliance with the License.
    9601  * You may obtain a copy of the License at
    9602  *
    9603  * http://www.apache.org/licenses/LICENSE-2.0
    9604  *
    9605  * Unless required by applicable law or agreed to in writing, software
    9606  * distributed under the License is distributed on an "AS IS" BASIS,
    9607  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    9608  * See the License for the specific language governing permissions and
    9609  * limitations under the License.
     9527},{"./DOMProperty":12,"./ReactDefaultPerfAnalysis":57,"./ReactMount":70,"./ReactPerf":75,"./performanceNow":153}],57:[function(_dereq_,module,exports){
     9528/**
     9529 * Copyright 2013-2014, Facebook, Inc.
     9530 * All rights reserved.
     9531 *
     9532 * This source code is licensed under the BSD-style license found in the
     9533 * LICENSE file in the root directory of this source tree. An additional grant
     9534 * of patent rights can be found in the PATENTS file in the same directory.
    96109535 *
    96119536 * @providesModule ReactDefaultPerfAnalysis
    96129537 */
    96139538
    9614 var merge = _dereq_("./merge");
     9539var assign = _dereq_("./Object.assign");
    96159540
    96169541// Don't try to save users less than 1.2ms (a number I made up)
     
    96679592  for (var i = 0; i < measurements.length; i++) {
    96689593    var measurement = measurements[i];
    9669     var allIDs = merge(measurement.exclusive, measurement.inclusive);
     9594    var allIDs = assign(
     9595      {},
     9596      measurement.exclusive,
     9597      measurement.inclusive
     9598    );
    96709599
    96719600    for (var id in allIDs) {
     
    97159644  for (var i = 0; i < measurements.length; i++) {
    97169645    var measurement = measurements[i];
    9717     var allIDs = merge(measurement.exclusive, measurement.inclusive);
     9646    var allIDs = assign(
     9647      {},
     9648      measurement.exclusive,
     9649      measurement.inclusive
     9650    );
    97189651    var cleanComponents;
    97199652
     
    97709703  var cleanComponents = {};
    97719704  var dirtyLeafIDs = Object.keys(measurement.writes);
    9772   var allIDs = merge(measurement.exclusive, measurement.inclusive);
     9705  var allIDs = assign({}, measurement.exclusive, measurement.inclusive);
    97739706
    97749707  for (var id in allIDs) {
    97759708    var isDirty = false;
    9776     // For each component that rendered, see if a component that triggerd
     9709    // For each component that rendered, see if a component that triggered
    97779710    // a DOM op is in its subtree.
    97789711    for (var i = 0; i < dirtyLeafIDs.length; i++) {
     
    97989731module.exports = ReactDefaultPerfAnalysis;
    97999732
    9800 },{"./merge":144}],56:[function(_dereq_,module,exports){
    9801 /**
    9802  * Copyright 2014 Facebook, Inc.
    9803  *
    9804  * Licensed under the Apache License, Version 2.0 (the "License");
    9805  * you may not use this file except in compliance with the License.
    9806  * You may obtain a copy of the License at
    9807  *
    9808  * http://www.apache.org/licenses/LICENSE-2.0
    9809  *
    9810  * Unless required by applicable law or agreed to in writing, software
    9811  * distributed under the License is distributed on an "AS IS" BASIS,
    9812  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    9813  * See the License for the specific language governing permissions and
    9814  * limitations under the License.
    9815  *
    9816  * @providesModule ReactDescriptor
     9733},{"./Object.assign":29}],58:[function(_dereq_,module,exports){
     9734/**
     9735 * Copyright 2014, Facebook, Inc.
     9736 * All rights reserved.
     9737 *
     9738 * This source code is licensed under the BSD-style license found in the
     9739 * LICENSE file in the root directory of this source tree. An additional grant
     9740 * of patent rights can be found in the PATENTS file in the same directory.
     9741 *
     9742 * @providesModule ReactElement
    98179743 */
    98189744
     
    98229748var ReactCurrentOwner = _dereq_("./ReactCurrentOwner");
    98239749
    9824 var merge = _dereq_("./merge");
    98259750var warning = _dereq_("./warning");
     9751
     9752var RESERVED_PROPS = {
     9753  key: true,
     9754  ref: true
     9755};
    98269756
    98279757/**
     
    98669796 *
    98679797 * @internal
    9868  * @param {object} descriptor
     9798 * @param {object} element
    98699799 */
    98709800function defineMutationMembrane(prototype) {
     
    98839813
    98849814/**
    9885  * Transfer static properties from the source to the target. Functions are
    9886  * rebound to have this reflect the original source.
    9887  */
    9888 function proxyStaticMethods(target, source) {
    9889   if (typeof source !== 'function') {
    9890     return;
    9891   }
    9892   for (var key in source) {
    9893     if (source.hasOwnProperty(key)) {
    9894       var value = source[key];
    9895       if (typeof value === 'function') {
    9896         var bound = value.bind(source);
    9897         // Copy any properties defined on the function, such as `isRequired` on
    9898         // a PropTypes validator. (mergeInto refuses to work on functions.)
    9899         for (var k in value) {
    9900           if (value.hasOwnProperty(k)) {
    9901             bound[k] = value[k];
    9902           }
    9903         }
    9904         target[key] = bound;
    9905       } else {
    9906         target[key] = value;
     9815 * Base constructor for all React elements. This is only used to make this
     9816 * work with a dynamic instanceof check. Nothing should live on this prototype.
     9817 *
     9818 * @param {*} type
     9819 * @param {string|object} ref
     9820 * @param {*} key
     9821 * @param {*} props
     9822 * @internal
     9823 */
     9824var ReactElement = function(type, key, ref, owner, context, props) {
     9825  // Built-in properties that belong on the element
     9826  this.type = type;
     9827  this.key = key;
     9828  this.ref = ref;
     9829
     9830  // Record the component responsible for creating this element.
     9831  this._owner = owner;
     9832
     9833  // TODO: Deprecate withContext, and then the context becomes accessible
     9834  // through the owner.
     9835  this._context = context;
     9836
     9837  if ("production" !== "development") {
     9838    // The validation flag and props are currently mutative. We put them on
     9839    // an external backing store so that we can freeze the whole object.
     9840    // This can be replaced with a WeakMap once they are implemented in
     9841    // commonly used development environments.
     9842    this._store = { validated: false, props: props };
     9843
     9844    // We're not allowed to set props directly on the object so we early
     9845    // return and rely on the prototype membrane to forward to the backing
     9846    // store.
     9847    if (useMutationMembrane) {
     9848      Object.freeze(this);
     9849      return;
     9850    }
     9851  }
     9852
     9853  this.props = props;
     9854};
     9855
     9856// We intentionally don't expose the function on the constructor property.
     9857// ReactElement should be indistinguishable from a plain object.
     9858ReactElement.prototype = {
     9859  _isReactElement: true
     9860};
     9861
     9862if ("production" !== "development") {
     9863  defineMutationMembrane(ReactElement.prototype);
     9864}
     9865
     9866ReactElement.createElement = function(type, config, children) {
     9867  var propName;
     9868
     9869  // Reserved names are extracted
     9870  var props = {};
     9871
     9872  var key = null;
     9873  var ref = null;
     9874
     9875  if (config != null) {
     9876    ref = config.ref === undefined ? null : config.ref;
     9877    if ("production" !== "development") {
     9878      ("production" !== "development" ? warning(
     9879        config.key !== null,
     9880        'createElement(...): Encountered component with a `key` of null. In ' +
     9881        'a future version, this will be treated as equivalent to the string ' +
     9882        '\'null\'; instead, provide an explicit key or use undefined.'
     9883      ) : null);
     9884    }
     9885    // TODO: Change this back to `config.key === undefined`
     9886    key = config.key == null ? null : '' + config.key;
     9887    // Remaining properties are added to a new props object
     9888    for (propName in config) {
     9889      if (config.hasOwnProperty(propName) &&
     9890          !RESERVED_PROPS.hasOwnProperty(propName)) {
     9891        props[propName] = config[propName];
    99079892      }
    99089893    }
    99099894  }
    9910 }
    9911 
    9912 /**
    9913  * Base constructor for all React descriptors. This is only used to make this
    9914  * work with a dynamic instanceof check. Nothing should live on this prototype.
    9915  *
    9916  * @param {*} type
    9917  * @internal
    9918  */
    9919 var ReactDescriptor = function() {};
    9920 
    9921 if ("production" !== "development") {
    9922   defineMutationMembrane(ReactDescriptor.prototype);
    9923 }
    9924 
    9925 ReactDescriptor.createFactory = function(type) {
    9926 
    9927   var descriptorPrototype = Object.create(ReactDescriptor.prototype);
    9928 
    9929   var factory = function(props, children) {
    9930     // For consistency we currently allocate a new object for every descriptor.
    9931     // This protects the descriptor from being mutated by the original props
    9932     // object being mutated. It also protects the original props object from
    9933     // being mutated by children arguments and default props. This behavior
    9934     // comes with a performance cost and could be deprecated in the future.
    9935     // It could also be optimized with a smarter JSX transform.
    9936     if (props == null) {
    9937       props = {};
    9938     } else if (typeof props === 'object') {
    9939       props = merge(props);
    9940     }
    9941 
    9942     // Children can be more than one argument, and those are transferred onto
    9943     // the newly allocated props object.
    9944     var childrenLength = arguments.length - 1;
    9945     if (childrenLength === 1) {
    9946       props.children = children;
    9947     } else if (childrenLength > 1) {
    9948       var childArray = Array(childrenLength);
    9949       for (var i = 0; i < childrenLength; i++) {
    9950         childArray[i] = arguments[i + 1];
     9895
     9896  // Children can be more than one argument, and those are transferred onto
     9897  // the newly allocated props object.
     9898  var childrenLength = arguments.length - 2;
     9899  if (childrenLength === 1) {
     9900    props.children = children;
     9901  } else if (childrenLength > 1) {
     9902    var childArray = Array(childrenLength);
     9903    for (var i = 0; i < childrenLength; i++) {
     9904      childArray[i] = arguments[i + 2];
     9905    }
     9906    props.children = childArray;
     9907  }
     9908
     9909  // Resolve default props
     9910  if (type.defaultProps) {
     9911    var defaultProps = type.defaultProps;
     9912    for (propName in defaultProps) {
     9913      if (typeof props[propName] === 'undefined') {
     9914        props[propName] = defaultProps[propName];
    99519915      }
    9952       props.children = childArray;
    9953     }
    9954 
    9955     // Initialize the descriptor object
    9956     var descriptor = Object.create(descriptorPrototype);
    9957 
    9958     // Record the component responsible for creating this descriptor.
    9959     descriptor._owner = ReactCurrentOwner.current;
    9960 
    9961     // TODO: Deprecate withContext, and then the context becomes accessible
    9962     // through the owner.
    9963     descriptor._context = ReactContext.current;
    9964 
    9965     if ("production" !== "development") {
    9966       // The validation flag and props are currently mutative. We put them on
    9967       // an external backing store so that we can freeze the whole object.
    9968       // This can be replaced with a WeakMap once they are implemented in
    9969       // commonly used development environments.
    9970       descriptor._store = { validated: false, props: props };
    9971 
    9972       // We're not allowed to set props directly on the object so we early
    9973       // return and rely on the prototype membrane to forward to the backing
    9974       // store.
    9975       if (useMutationMembrane) {
    9976         Object.freeze(descriptor);
    9977         return descriptor;
    9978       }
    9979     }
    9980 
    9981     descriptor.props = props;
    9982     return descriptor;
    9983   };
    9984 
    9985   // Currently we expose the prototype of the descriptor so that
    9986   // <Foo /> instanceof Foo works. This is controversial pattern.
    9987   factory.prototype = descriptorPrototype;
    9988 
     9916    }
     9917  }
     9918
     9919  return new ReactElement(
     9920    type,
     9921    key,
     9922    ref,
     9923    ReactCurrentOwner.current,
     9924    ReactContext.current,
     9925    props
     9926  );
     9927};
     9928
     9929ReactElement.createFactory = function(type) {
     9930  var factory = ReactElement.createElement.bind(null, type);
    99899931  // Expose the type on the factory and the prototype so that it can be
    9990   // easily accessed on descriptors. E.g. <Foo />.type === Foo.type and for
    9991   // static methods like <Foo />.type.staticMethod();
    9992   // This should not be named constructor since this may not be the function
    9993   // that created the descriptor, and it may not even be a constructor.
     9932  // easily accessed on elements. E.g. <Foo />.type === Foo.type.
     9933  // This should not be named `constructor` since this may not be the function
     9934  // that created the element, and it may not even be a constructor.
    99949935  factory.type = type;
    9995   descriptorPrototype.type = type;
    9996 
    9997   proxyStaticMethods(factory, type);
    9998 
    9999   // Expose a unique constructor on the prototype is that this works with type
    10000   // systems that compare constructor properties: <Foo />.constructor === Foo
    10001   // This may be controversial since it requires a known factory function.
    10002   descriptorPrototype.constructor = factory;
    10003 
    100049936  return factory;
    10005 
    100069937};
    100079938
    10008 ReactDescriptor.cloneAndReplaceProps = function(oldDescriptor, newProps) {
    10009   var newDescriptor = Object.create(oldDescriptor.constructor.prototype);
    10010   // It's important that this property order matches the hidden class of the
    10011   // original descriptor to maintain perf.
    10012   newDescriptor._owner = oldDescriptor._owner;
    10013   newDescriptor._context = oldDescriptor._context;
     9939ReactElement.cloneAndReplaceProps = function(oldElement, newProps) {
     9940  var newElement = new ReactElement(
     9941    oldElement.type,
     9942    oldElement.key,
     9943    oldElement.ref,
     9944    oldElement._owner,
     9945    oldElement._context,
     9946    newProps
     9947  );
    100149948
    100159949  if ("production" !== "development") {
    10016     newDescriptor._store = {
    10017       validated: oldDescriptor._store.validated,
    10018       props: newProps
    10019     };
    10020     if (useMutationMembrane) {
    10021       Object.freeze(newDescriptor);
    10022       return newDescriptor;
    10023     }
    10024   }
    10025 
    10026   newDescriptor.props = newProps;
    10027   return newDescriptor;
    10028 };
    10029 
    10030 /**
    10031  * Checks if a value is a valid descriptor constructor.
    10032  *
    10033  * @param {*}
    10034  * @return {boolean}
    10035  * @public
    10036  */
    10037 ReactDescriptor.isValidFactory = function(factory) {
    10038   return typeof factory === 'function' &&
    10039          factory.prototype instanceof ReactDescriptor;
     9950    // If the key on the original is valid, then the clone is valid
     9951    newElement._store.validated = oldElement._store.validated;
     9952  }
     9953  return newElement;
    100409954};
    100419955
     
    100459959 * @final
    100469960 */
    10047 ReactDescriptor.isValidDescriptor = function(object) {
    10048   return object instanceof ReactDescriptor;
     9961ReactElement.isValidElement = function(object) {
     9962  // ReactTestUtils is often used outside of beforeEach where as React is
     9963  // within it. This leads to two different instances of React on the same
     9964  // page. To identify a element from a different React instance we use
     9965  // a flag instead of an instanceof check.
     9966  var isElement = !!(object && object._isReactElement);
     9967  // if (isElement && !(object instanceof ReactElement)) {
     9968  // This is an indicator that you're using multiple versions of React at the
     9969  // same time. This will screw with ownership and stuff. Fix it, please.
     9970  // TODO: We could possibly warn here.
     9971  // }
     9972  return isElement;
    100499973};
    100509974
    10051 module.exports = ReactDescriptor;
    10052 
    10053 },{"./ReactContext":39,"./ReactCurrentOwner":40,"./merge":144,"./warning":158}],57:[function(_dereq_,module,exports){
    10054 /**
    10055  * Copyright 2014 Facebook, Inc.
    10056  *
    10057  * Licensed under the Apache License, Version 2.0 (the "License");
    10058  * you may not use this file except in compliance with the License.
    10059  * You may obtain a copy of the License at
    10060  *
    10061  * http://www.apache.org/licenses/LICENSE-2.0
    10062  *
    10063  * Unless required by applicable law or agreed to in writing, software
    10064  * distributed under the License is distributed on an "AS IS" BASIS,
    10065  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    10066  * See the License for the specific language governing permissions and
    10067  * limitations under the License.
    10068  *
    10069  * @providesModule ReactDescriptorValidator
    10070  */
    10071 
    10072 /**
    10073  * ReactDescriptorValidator provides a wrapper around a descriptor factory
    10074  * which validates the props passed to the descriptor. This is intended to be
     9975module.exports = ReactElement;
     9976
     9977},{"./ReactContext":41,"./ReactCurrentOwner":42,"./warning":160}],59:[function(_dereq_,module,exports){
     9978/**
     9979 * Copyright 2014, Facebook, Inc.
     9980 * All rights reserved.
     9981 *
     9982 * This source code is licensed under the BSD-style license found in the
     9983 * LICENSE file in the root directory of this source tree. An additional grant
     9984 * of patent rights can be found in the PATENTS file in the same directory.
     9985 *
     9986 * @providesModule ReactElementValidator
     9987 */
     9988
     9989/**
     9990 * ReactElementValidator provides a wrapper around a element factory
     9991 * which validates the props passed to the element. This is intended to be
    100759992 * used only in DEV and could be replaced by a static type checker for languages
    100769993 * that support it.
     
    100799996"use strict";
    100809997
    10081 var ReactDescriptor = _dereq_("./ReactDescriptor");
     9998var ReactElement = _dereq_("./ReactElement");
    100829999var ReactPropTypeLocations = _dereq_("./ReactPropTypeLocations");
    1008310000var ReactCurrentOwner = _dereq_("./ReactCurrentOwner");
     
    1012210039 */
    1012310040function validateExplicitKey(component, parentType) {
    10124   if (component._store.validated || component.props.key != null) {
     10041  if (component._store.validated || component.key != null) {
    1012510042    return;
    1012610043  }
     
    1022810145    for (var i = 0; i < component.length; i++) {
    1022910146      var child = component[i];
    10230       if (ReactDescriptor.isValidDescriptor(child)) {
     10147      if (ReactElement.isValidElement(child)) {
    1023110148        validateExplicitKey(child, parentType);
    1023210149      }
    1023310150    }
    10234   } else if (ReactDescriptor.isValidDescriptor(component)) {
     10151  } else if (ReactElement.isValidElement(component)) {
    1023510152    // This component was passed in a valid location.
    1023610153    component._store.validated = true;
     
    1027810195}
    1027910196
    10280 var ReactDescriptorValidator = {
    10281 
    10282   /**
    10283    * Wraps a descriptor factory function in another function which validates
    10284    * the props and context of the descriptor and warns about any failed type
    10285    * checks.
    10286    *
    10287    * @param {function} factory The original descriptor factory
    10288    * @param {object?} propTypes A prop type definition set
    10289    * @param {object?} contextTypes A context type definition set
    10290    * @return {object} The component descriptor, which may be invalid.
    10291    * @private
    10292    */
    10293   createFactory: function(factory, propTypes, contextTypes) {
    10294     var validatedFactory = function(props, children) {
    10295       var descriptor = factory.apply(this, arguments);
    10296 
    10297       for (var i = 1; i < arguments.length; i++) {
    10298         validateChildKeys(arguments[i], descriptor.type);
    10299       }
    10300 
    10301       var name = descriptor.type.displayName;
    10302       if (propTypes) {
    10303         checkPropTypes(
    10304           name,
    10305           propTypes,
    10306           descriptor.props,
    10307           ReactPropTypeLocations.prop
    10308         );
    10309       }
    10310       if (contextTypes) {
    10311         checkPropTypes(
    10312           name,
    10313           contextTypes,
    10314           descriptor._context,
    10315           ReactPropTypeLocations.context
    10316         );
    10317       }
    10318       return descriptor;
    10319     };
    10320 
    10321     validatedFactory.prototype = factory.prototype;
    10322     validatedFactory.type = factory.type;
    10323 
    10324     // Copy static properties
    10325     for (var key in factory) {
    10326       if (factory.hasOwnProperty(key)) {
    10327         validatedFactory[key] = factory[key];
    10328       }
    10329     }
    10330 
     10197var ReactElementValidator = {
     10198
     10199  createElement: function(type, props, children) {
     10200    var element = ReactElement.createElement.apply(this, arguments);
     10201
     10202    // The result can be nullish if a mock or a custom function is used.
     10203    // TODO: Drop this when these are no longer allowed as the type argument.
     10204    if (element == null) {
     10205      return element;
     10206    }
     10207
     10208    for (var i = 2; i < arguments.length; i++) {
     10209      validateChildKeys(arguments[i], type);
     10210    }
     10211
     10212    var name = type.displayName;
     10213    if (type.propTypes) {
     10214      checkPropTypes(
     10215        name,
     10216        type.propTypes,
     10217        element.props,
     10218        ReactPropTypeLocations.prop
     10219      );
     10220    }
     10221    if (type.contextTypes) {
     10222      checkPropTypes(
     10223        name,
     10224        type.contextTypes,
     10225        element._context,
     10226        ReactPropTypeLocations.context
     10227      );
     10228    }
     10229    return element;
     10230  },
     10231
     10232  createFactory: function(type) {
     10233    var validatedFactory = ReactElementValidator.createElement.bind(
     10234      null,
     10235      type
     10236    );
     10237    validatedFactory.type = type;
    1033110238    return validatedFactory;
    1033210239  }
     
    1033410241};
    1033510242
    10336 module.exports = ReactDescriptorValidator;
    10337 
    10338 },{"./ReactCurrentOwner":40,"./ReactDescriptor":56,"./ReactPropTypeLocations":74,"./monitorCodeUse":148}],58:[function(_dereq_,module,exports){
    10339 /**
    10340  * Copyright 2014 Facebook, Inc.
    10341  *
    10342  * Licensed under the Apache License, Version 2.0 (the "License");
    10343  * you may not use this file except in compliance with the License.
    10344  * You may obtain a copy of the License at
    10345  *
    10346  * http://www.apache.org/licenses/LICENSE-2.0
    10347  *
    10348  * Unless required by applicable law or agreed to in writing, software
    10349  * distributed under the License is distributed on an "AS IS" BASIS,
    10350  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    10351  * See the License for the specific language governing permissions and
    10352  * limitations under the License.
     10243module.exports = ReactElementValidator;
     10244
     10245},{"./ReactCurrentOwner":42,"./ReactElement":58,"./ReactPropTypeLocations":78,"./monitorCodeUse":150}],60:[function(_dereq_,module,exports){
     10246/**
     10247 * Copyright 2014, Facebook, Inc.
     10248 * All rights reserved.
     10249 *
     10250 * This source code is licensed under the BSD-style license found in the
     10251 * LICENSE file in the root directory of this source tree. An additional grant
     10252 * of patent rights can be found in the PATENTS file in the same directory.
    1035310253 *
    1035410254 * @providesModule ReactEmptyComponent
     
    1035610256
    1035710257"use strict";
     10258
     10259var ReactElement = _dereq_("./ReactElement");
    1035810260
    1035910261var invariant = _dereq_("./invariant");
     
    1036610268var ReactEmptyComponentInjection = {
    1036710269  injectEmptyComponent: function(emptyComponent) {
    10368     component = emptyComponent;
     10270    component = ReactElement.createFactory(emptyComponent);
    1036910271  }
    1037010272};
     
    1041610318module.exports = ReactEmptyComponent;
    1041710319
    10418 },{"./invariant":134}],59:[function(_dereq_,module,exports){
    10419 /**
    10420  * Copyright 2013-2014 Facebook, Inc.
    10421  *
    10422  * Licensed under the Apache License, Version 2.0 (the "License");
    10423  * you may not use this file except in compliance with the License.
    10424  * You may obtain a copy of the License at
    10425  *
    10426  * http://www.apache.org/licenses/LICENSE-2.0
    10427  *
    10428  * Unless required by applicable law or agreed to in writing, software
    10429  * distributed under the License is distributed on an "AS IS" BASIS,
    10430  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    10431  * See the License for the specific language governing permissions and
    10432  * limitations under the License.
     10320},{"./ReactElement":58,"./invariant":140}],61:[function(_dereq_,module,exports){
     10321/**
     10322 * Copyright 2013-2014, Facebook, Inc.
     10323 * All rights reserved.
     10324 *
     10325 * This source code is licensed under the BSD-style license found in the
     10326 * LICENSE file in the root directory of this source tree. An additional grant
     10327 * of patent rights can be found in the PATENTS file in the same directory.
    1043310328 *
    1043410329 * @providesModule ReactErrorUtils
     
    1045510350module.exports = ReactErrorUtils;
    1045610351
    10457 },{}],60:[function(_dereq_,module,exports){
    10458 /**
    10459  * Copyright 2013-2014 Facebook, Inc.
    10460  *
    10461  * Licensed under the Apache License, Version 2.0 (the "License");
    10462  * you may not use this file except in compliance with the License.
    10463  * You may obtain a copy of the License at
    10464  *
    10465  * http://www.apache.org/licenses/LICENSE-2.0
    10466  *
    10467  * Unless required by applicable law or agreed to in writing, software
    10468  * distributed under the License is distributed on an "AS IS" BASIS,
    10469  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    10470  * See the License for the specific language governing permissions and
    10471  * limitations under the License.
     10352},{}],62:[function(_dereq_,module,exports){
     10353/**
     10354 * Copyright 2013-2014, Facebook, Inc.
     10355 * All rights reserved.
     10356 *
     10357 * This source code is licensed under the BSD-style license found in the
     10358 * LICENSE file in the root directory of this source tree. An additional grant
     10359 * of patent rights can be found in the PATENTS file in the same directory.
    1047210360 *
    1047310361 * @providesModule ReactEventEmitterMixin
     
    1051210400module.exports = ReactEventEmitterMixin;
    1051310401
    10514 },{"./EventPluginHub":18}],61:[function(_dereq_,module,exports){
    10515 /**
    10516  * Copyright 2013-2014 Facebook, Inc.
    10517  *
    10518  * Licensed under the Apache License, Version 2.0 (the "License");
    10519  * you may not use this file except in compliance with the License.
    10520  * You may obtain a copy of the License at
    10521  *
    10522  * http://www.apache.org/licenses/LICENSE-2.0
    10523  *
    10524  * Unless required by applicable law or agreed to in writing, software
    10525  * distributed under the License is distributed on an "AS IS" BASIS,
    10526  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    10527  * See the License for the specific language governing permissions and
    10528  * limitations under the License.
     10402},{"./EventPluginHub":19}],63:[function(_dereq_,module,exports){
     10403/**
     10404 * Copyright 2013-2014, Facebook, Inc.
     10405 * All rights reserved.
     10406 *
     10407 * This source code is licensed under the BSD-style license found in the
     10408 * LICENSE file in the root directory of this source tree. An additional grant
     10409 * of patent rights can be found in the PATENTS file in the same directory.
    1052910410 *
    1053010411 * @providesModule ReactEventListener
     
    1054110422var ReactUpdates = _dereq_("./ReactUpdates");
    1054210423
     10424var assign = _dereq_("./Object.assign");
    1054310425var getEventTarget = _dereq_("./getEventTarget");
    1054410426var getUnboundedScrollPosition = _dereq_("./getUnboundedScrollPosition");
    10545 var mixInto = _dereq_("./mixInto");
    1054610427
    1054710428/**
     
    1056910450  this.ancestors = [];
    1057010451}
    10571 mixInto(TopLevelCallbackBookKeeping, {
     10452assign(TopLevelCallbackBookKeeping.prototype, {
    1057210453  destructor: function() {
    1057310454    this.topLevelType = null;
     
    1070310584module.exports = ReactEventListener;
    1070410585
    10705 },{"./EventListener":17,"./ExecutionEnvironment":22,"./PooledClass":28,"./ReactInstanceHandles":64,"./ReactMount":67,"./ReactUpdates":87,"./getEventTarget":125,"./getUnboundedScrollPosition":130,"./mixInto":147}],62:[function(_dereq_,module,exports){
    10706 /**
    10707  * Copyright 2013-2014 Facebook, Inc.
    10708  *
    10709  * Licensed under the Apache License, Version 2.0 (the "License");
    10710  * you may not use this file except in compliance with the License.
    10711  * You may obtain a copy of the License at
    10712  *
    10713  * http://www.apache.org/licenses/LICENSE-2.0
    10714  *
    10715  * Unless required by applicable law or agreed to in writing, software
    10716  * distributed under the License is distributed on an "AS IS" BASIS,
    10717  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    10718  * See the License for the specific language governing permissions and
    10719  * limitations under the License.
     10586},{"./EventListener":18,"./ExecutionEnvironment":23,"./Object.assign":29,"./PooledClass":30,"./ReactInstanceHandles":66,"./ReactMount":70,"./ReactUpdates":91,"./getEventTarget":131,"./getUnboundedScrollPosition":136}],64:[function(_dereq_,module,exports){
     10587/**
     10588 * Copyright 2013-2014, Facebook, Inc.
     10589 * All rights reserved.
     10590 *
     10591 * This source code is licensed under the BSD-style license found in the
     10592 * LICENSE file in the root directory of this source tree. An additional grant
     10593 * of patent rights can be found in the PATENTS file in the same directory.
    1072010594 *
    1072110595 * @providesModule ReactInjection
     
    1072810602var ReactComponent = _dereq_("./ReactComponent");
    1072910603var ReactCompositeComponent = _dereq_("./ReactCompositeComponent");
    10730 var ReactDOM = _dereq_("./ReactDOM");
    1073110604var ReactEmptyComponent = _dereq_("./ReactEmptyComponent");
    1073210605var ReactBrowserEventEmitter = _dereq_("./ReactBrowserEventEmitter");
     10606var ReactNativeComponent = _dereq_("./ReactNativeComponent");
    1073310607var ReactPerf = _dereq_("./ReactPerf");
    1073410608var ReactRootIndex = _dereq_("./ReactRootIndex");
     
    1074110615  EmptyComponent: ReactEmptyComponent.injection,
    1074210616  EventPluginHub: EventPluginHub.injection,
    10743   DOM: ReactDOM.injection,
    1074410617  EventEmitter: ReactBrowserEventEmitter.injection,
     10618  NativeComponent: ReactNativeComponent.injection,
    1074510619  Perf: ReactPerf.injection,
    1074610620  RootIndex: ReactRootIndex.injection,
     
    1075010624module.exports = ReactInjection;
    1075110625
    10752 },{"./DOMProperty":11,"./EventPluginHub":18,"./ReactBrowserEventEmitter":31,"./ReactComponent":35,"./ReactCompositeComponent":38,"./ReactDOM":41,"./ReactEmptyComponent":58,"./ReactPerf":71,"./ReactRootIndex":78,"./ReactUpdates":87}],63:[function(_dereq_,module,exports){
    10753 /**
    10754  * Copyright 2013-2014 Facebook, Inc.
    10755  *
    10756  * Licensed under the Apache License, Version 2.0 (the "License");
    10757  * you may not use this file except in compliance with the License.
    10758  * You may obtain a copy of the License at
    10759  *
    10760  * http://www.apache.org/licenses/LICENSE-2.0
    10761  *
    10762  * Unless required by applicable law or agreed to in writing, software
    10763  * distributed under the License is distributed on an "AS IS" BASIS,
    10764  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    10765  * See the License for the specific language governing permissions and
    10766  * limitations under the License.
     10626},{"./DOMProperty":12,"./EventPluginHub":19,"./ReactBrowserEventEmitter":33,"./ReactComponent":37,"./ReactCompositeComponent":40,"./ReactEmptyComponent":60,"./ReactNativeComponent":73,"./ReactPerf":75,"./ReactRootIndex":82,"./ReactUpdates":91}],65:[function(_dereq_,module,exports){
     10627/**
     10628 * Copyright 2013-2014, Facebook, Inc.
     10629 * All rights reserved.
     10630 *
     10631 * This source code is licensed under the BSD-style license found in the
     10632 * LICENSE file in the root directory of this source tree. An additional grant
     10633 * of patent rights can be found in the PATENTS file in the same directory.
    1076710634 *
    1076810635 * @providesModule ReactInputSelection
     
    1089310760module.exports = ReactInputSelection;
    1089410761
    10895 },{"./ReactDOMSelection":50,"./containsNode":109,"./focusNode":120,"./getActiveElement":122}],64:[function(_dereq_,module,exports){
    10896 /**
    10897  * Copyright 2013-2014 Facebook, Inc.
    10898  *
    10899  * Licensed under the Apache License, Version 2.0 (the "License");
    10900  * you may not use this file except in compliance with the License.
    10901  * You may obtain a copy of the License at
    10902  *
    10903  * http://www.apache.org/licenses/LICENSE-2.0
    10904  *
    10905  * Unless required by applicable law or agreed to in writing, software
    10906  * distributed under the License is distributed on an "AS IS" BASIS,
    10907  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    10908  * See the License for the specific language governing permissions and
    10909  * limitations under the License.
     10762},{"./ReactDOMSelection":52,"./containsNode":114,"./focusNode":125,"./getActiveElement":127}],66:[function(_dereq_,module,exports){
     10763/**
     10764 * Copyright 2013-2014, Facebook, Inc.
     10765 * All rights reserved.
     10766 *
     10767 * This source code is licensed under the BSD-style license found in the
     10768 * LICENSE file in the root directory of this source tree. An additional grant
     10769 * of patent rights can be found in the PATENTS file in the same directory.
    1091010770 *
    1091110771 * @providesModule ReactInstanceHandles
     
    1123311093module.exports = ReactInstanceHandles;
    1123411094
    11235 },{"./ReactRootIndex":78,"./invariant":134}],65:[function(_dereq_,module,exports){
    11236 /**
    11237  * Copyright 2013-2014 Facebook, Inc.
    11238  *
    11239  * Licensed under the Apache License, Version 2.0 (the "License");
    11240  * you may not use this file except in compliance with the License.
    11241  * You may obtain a copy of the License at
    11242  *
    11243  * http://www.apache.org/licenses/LICENSE-2.0
    11244  *
    11245  * Unless required by applicable law or agreed to in writing, software
    11246  * distributed under the License is distributed on an "AS IS" BASIS,
    11247  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11248  * See the License for the specific language governing permissions and
    11249  * limitations under the License.
     11095},{"./ReactRootIndex":82,"./invariant":140}],67:[function(_dereq_,module,exports){
     11096/**
     11097 * Copyright 2014, Facebook, Inc.
     11098 * All rights reserved.
     11099 *
     11100 * This source code is licensed under the BSD-style license found in the
     11101 * LICENSE file in the root directory of this source tree. An additional grant
     11102 * of patent rights can be found in the PATENTS file in the same directory.
     11103 *
     11104 * @providesModule ReactLegacyElement
     11105 */
     11106
     11107"use strict";
     11108
     11109var ReactCurrentOwner = _dereq_("./ReactCurrentOwner");
     11110
     11111var invariant = _dereq_("./invariant");
     11112var monitorCodeUse = _dereq_("./monitorCodeUse");
     11113var warning = _dereq_("./warning");
     11114
     11115var legacyFactoryLogs = {};
     11116function warnForLegacyFactoryCall() {
     11117  if (!ReactLegacyElementFactory._isLegacyCallWarningEnabled) {
     11118    return;
     11119  }
     11120  var owner = ReactCurrentOwner.current;
     11121  var name = owner && owner.constructor ? owner.constructor.displayName : '';
     11122  if (!name) {
     11123    name = 'Something';
     11124  }
     11125  if (legacyFactoryLogs.hasOwnProperty(name)) {
     11126    return;
     11127  }
     11128  legacyFactoryLogs[name] = true;
     11129  ("production" !== "development" ? warning(
     11130    false,
     11131    name + ' is calling a React component directly. ' +
     11132    'Use a factory or JSX instead. See: http://fb.me/react-legacyfactory'
     11133  ) : null);
     11134  monitorCodeUse('react_legacy_factory_call', { version: 3, name: name });
     11135}
     11136
     11137function warnForPlainFunctionType(type) {
     11138  var isReactClass =
     11139    type.prototype &&
     11140    typeof type.prototype.mountComponent === 'function' &&
     11141    typeof type.prototype.receiveComponent === 'function';
     11142  if (isReactClass) {
     11143    ("production" !== "development" ? warning(
     11144      false,
     11145      'Did not expect to get a React class here. Use `Component` instead ' +
     11146      'of `Component.type` or `this.constructor`.'
     11147    ) : null);
     11148  } else {
     11149    if (!type._reactWarnedForThisType) {
     11150      try {
     11151        type._reactWarnedForThisType = true;
     11152      } catch (x) {
     11153        // just incase this is a frozen object or some special object
     11154      }
     11155      monitorCodeUse(
     11156        'react_non_component_in_jsx',
     11157        { version: 3, name: type.name }
     11158      );
     11159    }
     11160    ("production" !== "development" ? warning(
     11161      false,
     11162      'This JSX uses a plain function. Only React components are ' +
     11163      'valid in React\'s JSX transform.'
     11164    ) : null);
     11165  }
     11166}
     11167
     11168function warnForNonLegacyFactory(type) {
     11169  ("production" !== "development" ? warning(
     11170    false,
     11171    'Do not pass React.DOM.' + type.type + ' to JSX or createFactory. ' +
     11172    'Use the string "' + type.type + '" instead.'
     11173  ) : null);
     11174}
     11175
     11176/**
     11177 * Transfer static properties from the source to the target. Functions are
     11178 * rebound to have this reflect the original source.
     11179 */
     11180function proxyStaticMethods(target, source) {
     11181  if (typeof source !== 'function') {
     11182    return;
     11183  }
     11184  for (var key in source) {
     11185    if (source.hasOwnProperty(key)) {
     11186      var value = source[key];
     11187      if (typeof value === 'function') {
     11188        var bound = value.bind(source);
     11189        // Copy any properties defined on the function, such as `isRequired` on
     11190        // a PropTypes validator.
     11191        for (var k in value) {
     11192          if (value.hasOwnProperty(k)) {
     11193            bound[k] = value[k];
     11194          }
     11195        }
     11196        target[key] = bound;
     11197      } else {
     11198        target[key] = value;
     11199      }
     11200    }
     11201  }
     11202}
     11203
     11204// We use an object instead of a boolean because booleans are ignored by our
     11205// mocking libraries when these factories gets mocked.
     11206var LEGACY_MARKER = {};
     11207var NON_LEGACY_MARKER = {};
     11208
     11209var ReactLegacyElementFactory = {};
     11210
     11211ReactLegacyElementFactory.wrapCreateFactory = function(createFactory) {
     11212  var legacyCreateFactory = function(type) {
     11213    if (typeof type !== 'function') {
     11214      // Non-function types cannot be legacy factories
     11215      return createFactory(type);
     11216    }
     11217
     11218    if (type.isReactNonLegacyFactory) {
     11219      // This is probably a factory created by ReactDOM we unwrap it to get to
     11220      // the underlying string type. It shouldn't have been passed here so we
     11221      // warn.
     11222      if ("production" !== "development") {
     11223        warnForNonLegacyFactory(type);
     11224      }
     11225      return createFactory(type.type);
     11226    }
     11227
     11228    if (type.isReactLegacyFactory) {
     11229      // This is probably a legacy factory created by ReactCompositeComponent.
     11230      // We unwrap it to get to the underlying class.
     11231      return createFactory(type.type);
     11232    }
     11233
     11234    if ("production" !== "development") {
     11235      warnForPlainFunctionType(type);
     11236    }
     11237
     11238    // Unless it's a legacy factory, then this is probably a plain function,
     11239    // that is expecting to be invoked by JSX. We can just return it as is.
     11240    return type;
     11241  };
     11242  return legacyCreateFactory;
     11243};
     11244
     11245ReactLegacyElementFactory.wrapCreateElement = function(createElement) {
     11246  var legacyCreateElement = function(type, props, children) {
     11247    if (typeof type !== 'function') {
     11248      // Non-function types cannot be legacy factories
     11249      return createElement.apply(this, arguments);
     11250    }
     11251
     11252    var args;
     11253
     11254    if (type.isReactNonLegacyFactory) {
     11255      // This is probably a factory created by ReactDOM we unwrap it to get to
     11256      // the underlying string type. It shouldn't have been passed here so we
     11257      // warn.
     11258      if ("production" !== "development") {
     11259        warnForNonLegacyFactory(type);
     11260      }
     11261      args = Array.prototype.slice.call(arguments, 0);
     11262      args[0] = type.type;
     11263      return createElement.apply(this, args);
     11264    }
     11265
     11266    if (type.isReactLegacyFactory) {
     11267      // This is probably a legacy factory created by ReactCompositeComponent.
     11268      // We unwrap it to get to the underlying class.
     11269      if (type._isMockFunction) {
     11270        // If this is a mock function, people will expect it to be called. We
     11271        // will actually call the original mock factory function instead. This
     11272        // future proofs unit testing that assume that these are classes.
     11273        type.type._mockedReactClassConstructor = type;
     11274      }
     11275      args = Array.prototype.slice.call(arguments, 0);
     11276      args[0] = type.type;
     11277      return createElement.apply(this, args);
     11278    }
     11279
     11280    if ("production" !== "development") {
     11281      warnForPlainFunctionType(type);
     11282    }
     11283
     11284    // This is being called with a plain function we should invoke it
     11285    // immediately as if this was used with legacy JSX.
     11286    return type.apply(null, Array.prototype.slice.call(arguments, 1));
     11287  };
     11288  return legacyCreateElement;
     11289};
     11290
     11291ReactLegacyElementFactory.wrapFactory = function(factory) {
     11292  ("production" !== "development" ? invariant(
     11293    typeof factory === 'function',
     11294    'This is suppose to accept a element factory'
     11295  ) : invariant(typeof factory === 'function'));
     11296  var legacyElementFactory = function(config, children) {
     11297    // This factory should not be called when JSX is used. Use JSX instead.
     11298    if ("production" !== "development") {
     11299      warnForLegacyFactoryCall();
     11300    }
     11301    return factory.apply(this, arguments);
     11302  };
     11303  proxyStaticMethods(legacyElementFactory, factory.type);
     11304  legacyElementFactory.isReactLegacyFactory = LEGACY_MARKER;
     11305  legacyElementFactory.type = factory.type;
     11306  return legacyElementFactory;
     11307};
     11308
     11309// This is used to mark a factory that will remain. E.g. we're allowed to call
     11310// it as a function. However, you're not suppose to pass it to createElement
     11311// or createFactory, so it will warn you if you do.
     11312ReactLegacyElementFactory.markNonLegacyFactory = function(factory) {
     11313  factory.isReactNonLegacyFactory = NON_LEGACY_MARKER;
     11314  return factory;
     11315};
     11316
     11317// Checks if a factory function is actually a legacy factory pretending to
     11318// be a class.
     11319ReactLegacyElementFactory.isValidFactory = function(factory) {
     11320  // TODO: This will be removed and moved into a class validator or something.
     11321  return typeof factory === 'function' &&
     11322    factory.isReactLegacyFactory === LEGACY_MARKER;
     11323};
     11324
     11325ReactLegacyElementFactory.isValidClass = function(factory) {
     11326  if ("production" !== "development") {
     11327    ("production" !== "development" ? warning(
     11328      false,
     11329      'isValidClass is deprecated and will be removed in a future release. ' +
     11330      'Use a more specific validator instead.'
     11331    ) : null);
     11332  }
     11333  return ReactLegacyElementFactory.isValidFactory(factory);
     11334};
     11335
     11336ReactLegacyElementFactory._isLegacyCallWarningEnabled = true;
     11337
     11338module.exports = ReactLegacyElementFactory;
     11339
     11340},{"./ReactCurrentOwner":42,"./invariant":140,"./monitorCodeUse":150,"./warning":160}],68:[function(_dereq_,module,exports){
     11341/**
     11342 * Copyright 2013-2014, Facebook, Inc.
     11343 * All rights reserved.
     11344 *
     11345 * This source code is licensed under the BSD-style license found in the
     11346 * LICENSE file in the root directory of this source tree. An additional grant
     11347 * of patent rights can be found in the PATENTS file in the same directory.
    1125011348 *
    1125111349 * @providesModule ReactLink
     
    1131311411module.exports = ReactLink;
    1131411412
    11315 },{"./React":29}],66:[function(_dereq_,module,exports){
    11316 /**
    11317  * Copyright 2013-2014 Facebook, Inc.
    11318  *
    11319  * Licensed under the Apache License, Version 2.0 (the "License");
    11320  * you may not use this file except in compliance with the License.
    11321  * You may obtain a copy of the License at
    11322  *
    11323  * http://www.apache.org/licenses/LICENSE-2.0
    11324  *
    11325  * Unless required by applicable law or agreed to in writing, software
    11326  * distributed under the License is distributed on an "AS IS" BASIS,
    11327  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11328  * See the License for the specific language governing permissions and
    11329  * limitations under the License.
     11413},{"./React":31}],69:[function(_dereq_,module,exports){
     11414/**
     11415 * Copyright 2013-2014, Facebook, Inc.
     11416 * All rights reserved.
     11417 *
     11418 * This source code is licensed under the BSD-style license found in the
     11419 * LICENSE file in the root directory of this source tree. An additional grant
     11420 * of patent rights can be found in the PATENTS file in the same directory.
    1133011421 *
    1133111422 * @providesModule ReactMarkupChecksum
     
    1136811459module.exports = ReactMarkupChecksum;
    1136911460
    11370 },{"./adler32":107}],67:[function(_dereq_,module,exports){
    11371 /**
    11372  * Copyright 2013-2014 Facebook, Inc.
    11373  *
    11374  * Licensed under the Apache License, Version 2.0 (the "License");
    11375  * you may not use this file except in compliance with the License.
    11376  * You may obtain a copy of the License at
    11377  *
    11378  * http://www.apache.org/licenses/LICENSE-2.0
    11379  *
    11380  * Unless required by applicable law or agreed to in writing, software
    11381  * distributed under the License is distributed on an "AS IS" BASIS,
    11382  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11383  * See the License for the specific language governing permissions and
    11384  * limitations under the License.
     11461},{"./adler32":110}],70:[function(_dereq_,module,exports){
     11462/**
     11463 * Copyright 2013-2014, Facebook, Inc.
     11464 * All rights reserved.
     11465 *
     11466 * This source code is licensed under the BSD-style license found in the
     11467 * LICENSE file in the root directory of this source tree. An additional grant
     11468 * of patent rights can be found in the PATENTS file in the same directory.
    1138511469 *
    1138611470 * @providesModule ReactMount
     
    1139211476var ReactBrowserEventEmitter = _dereq_("./ReactBrowserEventEmitter");
    1139311477var ReactCurrentOwner = _dereq_("./ReactCurrentOwner");
    11394 var ReactDescriptor = _dereq_("./ReactDescriptor");
     11478var ReactElement = _dereq_("./ReactElement");
     11479var ReactLegacyElement = _dereq_("./ReactLegacyElement");
    1139511480var ReactInstanceHandles = _dereq_("./ReactInstanceHandles");
    1139611481var ReactPerf = _dereq_("./ReactPerf");
    1139711482
    1139811483var containsNode = _dereq_("./containsNode");
     11484var deprecated = _dereq_("./deprecated");
    1139911485var getReactRootElementInContainer = _dereq_("./getReactRootElementInContainer");
    1140011486var instantiateReactComponent = _dereq_("./instantiateReactComponent");
     
    1140211488var shouldUpdateReactComponent = _dereq_("./shouldUpdateReactComponent");
    1140311489var warning = _dereq_("./warning");
     11490
     11491var createElement = ReactLegacyElement.wrapCreateElement(
     11492  ReactElement.createElement
     11493);
    1140411494
    1140511495var SEPARATOR = ReactInstanceHandles.SEPARATOR;
     
    1157011660 * Any prior content inside `container` is destroyed in the process.
    1157111661 *
    11572  *   ReactMount.renderComponent(
     11662 *   ReactMount.render(
    1157311663 *     component,
    1157411664 *     document.getElementById('container')
     
    1167611766      ) : null);
    1167711767
    11678       var componentInstance = instantiateReactComponent(nextComponent);
     11768      var componentInstance = instantiateReactComponent(nextComponent, null);
    1167911769      var reactRootID = ReactMount._registerComponent(
    1168011770        componentInstance,
     
    1170411794   * latest React component.
    1170511795   *
    11706    * @param {ReactDescriptor} nextDescriptor Component descriptor to render.
     11796   * @param {ReactElement} nextElement Component element to render.
    1170711797   * @param {DOMElement} container DOM element to render into.
    1170811798   * @param {?function} callback function triggered on completion
    1170911799   * @return {ReactComponent} Component instance rendered in `container`.
    1171011800   */
    11711   renderComponent: function(nextDescriptor, container, callback) {
     11801  render: function(nextElement, container, callback) {
    1171211802    ("production" !== "development" ? invariant(
    11713       ReactDescriptor.isValidDescriptor(nextDescriptor),
    11714       'renderComponent(): Invalid component descriptor.%s',
     11803      ReactElement.isValidElement(nextElement),
     11804      'renderComponent(): Invalid component element.%s',
    1171511805      (
    11716         ReactDescriptor.isValidFactory(nextDescriptor) ?
     11806        typeof nextElement === 'string' ?
     11807          ' Instead of passing an element string, make sure to instantiate ' +
     11808          'it by passing it to React.createElement.' :
     11809        ReactLegacyElement.isValidFactory(nextElement) ?
    1171711810          ' Instead of passing a component class, make sure to instantiate ' +
    11718           'it first by calling it with props.' :
    11719         // Check if it quacks like a descriptor
    11720         typeof nextDescriptor.props !== "undefined" ?
     11811          'it by passing it to React.createElement.' :
     11812        // Check if it quacks like a element
     11813        typeof nextElement.props !== "undefined" ?
    1172111814          ' This may be caused by unintentionally loading two independent ' +
    1172211815          'copies of React.' :
    1172311816          ''
    1172411817      )
    11725     ) : invariant(ReactDescriptor.isValidDescriptor(nextDescriptor)));
     11818    ) : invariant(ReactElement.isValidElement(nextElement)));
    1172611819
    1172711820    var prevComponent = instancesByReactRootID[getReactRootID(container)];
    1172811821
    1172911822    if (prevComponent) {
    11730       var prevDescriptor = prevComponent._descriptor;
    11731       if (shouldUpdateReactComponent(prevDescriptor, nextDescriptor)) {
     11823      var prevElement = prevComponent._currentElement;
     11824      if (shouldUpdateReactComponent(prevElement, nextElement)) {
    1173211825        return ReactMount._updateRootComponent(
    1173311826          prevComponent,
    11734           nextDescriptor,
     11827          nextElement,
    1173511828          container,
    1173611829          callback
     
    1174811841
    1174911842    var component = ReactMount._renderNewRootComponent(
    11750       nextDescriptor,
     11843      nextElement,
    1175111844      container,
    1175211845      shouldReuseMarkup
     
    1176611859   */
    1176711860  constructAndRenderComponent: function(constructor, props, container) {
    11768     return ReactMount.renderComponent(constructor(props), container);
     11861    var element = createElement(constructor, props);
     11862    return ReactMount.render(element, container);
    1176911863  },
    1177011864
     
    1202512119      'findComponentRoot(..., %s): Unable to find element. This probably ' +
    1202612120      'means the DOM was unexpectedly mutated (e.g., by the browser), ' +
    12027       'usually due to forgetting a <tbody> when using tables, nesting <p> ' +
    12028       'or <a> tags, or using non-SVG elements in an <svg> parent. Try ' +
    12029       'inspecting the child nodes of the element with React ID `%s`.',
     12121      'usually due to forgetting a <tbody> when using tables, nesting tags ' +
     12122      'like <form>, <p>, or <a>, or using non-SVG elements in an <svg> ' +
     12123      'parent. ' +
     12124      'Try inspecting the child nodes of the element with React ID `%s`.',
    1203012125      targetID,
    1203112126      ReactMount.getID(ancestorNode)
     
    1204912144};
    1205012145
     12146// Deprecations (remove for 0.13)
     12147ReactMount.renderComponent = deprecated(
     12148  'ReactMount',
     12149  'renderComponent',
     12150  'render',
     12151  this,
     12152  ReactMount.render
     12153);
     12154
    1205112155module.exports = ReactMount;
    1205212156
    12053 },{"./DOMProperty":11,"./ReactBrowserEventEmitter":31,"./ReactCurrentOwner":40,"./ReactDescriptor":56,"./ReactInstanceHandles":64,"./ReactPerf":71,"./containsNode":109,"./getReactRootElementInContainer":128,"./instantiateReactComponent":133,"./invariant":134,"./shouldUpdateReactComponent":154,"./warning":158}],68:[function(_dereq_,module,exports){
    12054 /**
    12055  * Copyright 2013-2014 Facebook, Inc.
    12056  *
    12057  * Licensed under the Apache License, Version 2.0 (the "License");
    12058  * you may not use this file except in compliance with the License.
    12059  * You may obtain a copy of the License at
    12060  *
    12061  * http://www.apache.org/licenses/LICENSE-2.0
    12062  *
    12063  * Unless required by applicable law or agreed to in writing, software
    12064  * distributed under the License is distributed on an "AS IS" BASIS,
    12065  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12066  * See the License for the specific language governing permissions and
    12067  * limitations under the License.
     12157},{"./DOMProperty":12,"./ReactBrowserEventEmitter":33,"./ReactCurrentOwner":42,"./ReactElement":58,"./ReactInstanceHandles":66,"./ReactLegacyElement":67,"./ReactPerf":75,"./containsNode":114,"./deprecated":120,"./getReactRootElementInContainer":134,"./instantiateReactComponent":139,"./invariant":140,"./shouldUpdateReactComponent":156,"./warning":160}],71:[function(_dereq_,module,exports){
     12158/**
     12159 * Copyright 2013-2014, Facebook, Inc.
     12160 * All rights reserved.
     12161 *
     12162 * This source code is licensed under the BSD-style license found in the
     12163 * LICENSE file in the root directory of this source tree. An additional grant
     12164 * of patent rights can be found in the PATENTS file in the same directory.
    1206812165 *
    1206912166 * @providesModule ReactMultiChild
     
    1224912346          // The rendered children must be turned into instances as they're
    1225012347          // mounted.
    12251           var childInstance = instantiateReactComponent(child);
     12348          var childInstance = instantiateReactComponent(child, null);
    1225212349          children[name] = childInstance;
    1225312350          // Inlined for performance, see `ReactInstanceHandles.createReactID`.
     
    1234012437        }
    1234112438        var prevChild = prevChildren && prevChildren[name];
    12342         var prevDescriptor = prevChild && prevChild._descriptor;
    12343         var nextDescriptor = nextChildren[name];
    12344         if (shouldUpdateReactComponent(prevDescriptor, nextDescriptor)) {
     12439        var prevElement = prevChild && prevChild._currentElement;
     12440        var nextElement = nextChildren[name];
     12441        if (shouldUpdateReactComponent(prevElement, nextElement)) {
    1234512442          this.moveChild(prevChild, nextIndex, lastIndex);
    1234612443          lastIndex = Math.max(prevChild._mountIndex, lastIndex);
    12347           prevChild.receiveComponent(nextDescriptor, transaction);
     12444          prevChild.receiveComponent(nextElement, transaction);
    1234812445          prevChild._mountIndex = nextIndex;
    1234912446        } else {
     
    1235412451          }
    1235512452          // The child must be instantiated before it's mounted.
    12356           var nextChildInstance = instantiateReactComponent(nextDescriptor);
     12453          var nextChildInstance = instantiateReactComponent(
     12454            nextElement,
     12455            null
     12456          );
    1235712457          this._mountChildByNameAtIndex(
    1235812458            nextChildInstance, name, nextIndex, transaction
     
    1248312583module.exports = ReactMultiChild;
    1248412584
    12485 },{"./ReactComponent":35,"./ReactMultiChildUpdateTypes":69,"./flattenChildren":119,"./instantiateReactComponent":133,"./shouldUpdateReactComponent":154}],69:[function(_dereq_,module,exports){
    12486 /**
    12487  * Copyright 2013-2014 Facebook, Inc.
    12488  *
    12489  * Licensed under the Apache License, Version 2.0 (the "License");
    12490  * you may not use this file except in compliance with the License.
    12491  * You may obtain a copy of the License at
    12492  *
    12493  * http://www.apache.org/licenses/LICENSE-2.0
    12494  *
    12495  * Unless required by applicable law or agreed to in writing, software
    12496  * distributed under the License is distributed on an "AS IS" BASIS,
    12497  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12498  * See the License for the specific language governing permissions and
    12499  * limitations under the License.
     12585},{"./ReactComponent":37,"./ReactMultiChildUpdateTypes":72,"./flattenChildren":124,"./instantiateReactComponent":139,"./shouldUpdateReactComponent":156}],72:[function(_dereq_,module,exports){
     12586/**
     12587 * Copyright 2013-2014, Facebook, Inc.
     12588 * All rights reserved.
     12589 *
     12590 * This source code is licensed under the BSD-style license found in the
     12591 * LICENSE file in the root directory of this source tree. An additional grant
     12592 * of patent rights can be found in the PATENTS file in the same directory.
    1250012593 *
    1250112594 * @providesModule ReactMultiChildUpdateTypes
     
    1252312616module.exports = ReactMultiChildUpdateTypes;
    1252412617
    12525 },{"./keyMirror":140}],70:[function(_dereq_,module,exports){
    12526 /**
    12527  * Copyright 2013-2014 Facebook, Inc.
    12528  *
    12529  * Licensed under the Apache License, Version 2.0 (the "License");
    12530  * you may not use this file except in compliance with the License.
    12531  * You may obtain a copy of the License at
    12532  *
    12533  * http://www.apache.org/licenses/LICENSE-2.0
    12534  *
    12535  * Unless required by applicable law or agreed to in writing, software
    12536  * distributed under the License is distributed on an "AS IS" BASIS,
    12537  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12538  * See the License for the specific language governing permissions and
    12539  * limitations under the License.
     12618},{"./keyMirror":146}],73:[function(_dereq_,module,exports){
     12619/**
     12620 * Copyright 2014, Facebook, Inc.
     12621 * All rights reserved.
     12622 *
     12623 * This source code is licensed under the BSD-style license found in the
     12624 * LICENSE file in the root directory of this source tree. An additional grant
     12625 * of patent rights can be found in the PATENTS file in the same directory.
     12626 *
     12627 * @providesModule ReactNativeComponent
     12628 */
     12629
     12630"use strict";
     12631
     12632var assign = _dereq_("./Object.assign");
     12633var invariant = _dereq_("./invariant");
     12634
     12635var genericComponentClass = null;
     12636// This registry keeps track of wrapper classes around native tags
     12637var tagToComponentClass = {};
     12638
     12639var ReactNativeComponentInjection = {
     12640  // This accepts a class that receives the tag string. This is a catch all
     12641  // that can render any kind of tag.
     12642  injectGenericComponentClass: function(componentClass) {
     12643    genericComponentClass = componentClass;
     12644  },
     12645  // This accepts a keyed object with classes as values. Each key represents a
     12646  // tag. That particular tag will use this class instead of the generic one.
     12647  injectComponentClasses: function(componentClasses) {
     12648    assign(tagToComponentClass, componentClasses);
     12649  }
     12650};
     12651
     12652/**
     12653 * Create an internal class for a specific tag.
     12654 *
     12655 * @param {string} tag The tag for which to create an internal instance.
     12656 * @param {any} props The props passed to the instance constructor.
     12657 * @return {ReactComponent} component The injected empty component.
     12658 */
     12659function createInstanceForTag(tag, props, parentType) {
     12660  var componentClass = tagToComponentClass[tag];
     12661  if (componentClass == null) {
     12662    ("production" !== "development" ? invariant(
     12663      genericComponentClass,
     12664      'There is no registered component for the tag %s',
     12665      tag
     12666    ) : invariant(genericComponentClass));
     12667    return new genericComponentClass(tag, props);
     12668  }
     12669  if (parentType === tag) {
     12670    // Avoid recursion
     12671    ("production" !== "development" ? invariant(
     12672      genericComponentClass,
     12673      'There is no registered component for the tag %s',
     12674      tag
     12675    ) : invariant(genericComponentClass));
     12676    return new genericComponentClass(tag, props);
     12677  }
     12678  // Unwrap legacy factories
     12679  return new componentClass.type(props);
     12680}
     12681
     12682var ReactNativeComponent = {
     12683  createInstanceForTag: createInstanceForTag,
     12684  injection: ReactNativeComponentInjection
     12685};
     12686
     12687module.exports = ReactNativeComponent;
     12688
     12689},{"./Object.assign":29,"./invariant":140}],74:[function(_dereq_,module,exports){
     12690/**
     12691 * Copyright 2013-2014, Facebook, Inc.
     12692 * All rights reserved.
     12693 *
     12694 * This source code is licensed under the BSD-style license found in the
     12695 * LICENSE file in the root directory of this source tree. An additional grant
     12696 * of patent rights can be found in the PATENTS file in the same directory.
    1254012697 *
    1254112698 * @providesModule ReactOwner
     
    1268412841module.exports = ReactOwner;
    1268512842
    12686 },{"./emptyObject":117,"./invariant":134}],71:[function(_dereq_,module,exports){
    12687 /**
    12688  * Copyright 2013-2014 Facebook, Inc.
    12689  *
    12690  * Licensed under the Apache License, Version 2.0 (the "License");
    12691  * you may not use this file except in compliance with the License.
    12692  * You may obtain a copy of the License at
    12693  *
    12694  * http://www.apache.org/licenses/LICENSE-2.0
    12695  *
    12696  * Unless required by applicable law or agreed to in writing, software
    12697  * distributed under the License is distributed on an "AS IS" BASIS,
    12698  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12699  * See the License for the specific language governing permissions and
    12700  * limitations under the License.
     12843},{"./emptyObject":122,"./invariant":140}],75:[function(_dereq_,module,exports){
     12844/**
     12845 * Copyright 2013-2014, Facebook, Inc.
     12846 * All rights reserved.
     12847 *
     12848 * This source code is licensed under the BSD-style license found in the
     12849 * LICENSE file in the root directory of this source tree. An additional grant
     12850 * of patent rights can be found in the PATENTS file in the same directory.
    1270112851 *
    1270212852 * @providesModule ReactPerf
     
    1273412884    if ("production" !== "development") {
    1273512885      var measuredFunc = null;
    12736       return function() {
     12886      var wrapper = function() {
    1273712887        if (ReactPerf.enableMeasure) {
    1273812888          if (!measuredFunc) {
     
    1274312893        return func.apply(this, arguments);
    1274412894      };
     12895      wrapper.displayName = objName + '_' + fnName;
     12896      return wrapper;
    1274512897    }
    1274612898    return func;
     
    1277112923module.exports = ReactPerf;
    1277212924
    12773 },{}],72:[function(_dereq_,module,exports){
    12774 /**
    12775  * Copyright 2013-2014 Facebook, Inc.
    12776  *
    12777  * Licensed under the Apache License, Version 2.0 (the "License");
    12778  * you may not use this file except in compliance with the License.
    12779  * You may obtain a copy of the License at
    12780  *
    12781  * http://www.apache.org/licenses/LICENSE-2.0
    12782  *
    12783  * Unless required by applicable law or agreed to in writing, software
    12784  * distributed under the License is distributed on an "AS IS" BASIS,
    12785  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12786  * See the License for the specific language governing permissions and
    12787  * limitations under the License.
     12925},{}],76:[function(_dereq_,module,exports){
     12926/**
     12927 * Copyright 2013-2014, Facebook, Inc.
     12928 * All rights reserved.
     12929 *
     12930 * This source code is licensed under the BSD-style license found in the
     12931 * LICENSE file in the root directory of this source tree. An additional grant
     12932 * of patent rights can be found in the PATENTS file in the same directory.
    1278812933 *
    1278912934 * @providesModule ReactPropTransferer
     
    1279212937"use strict";
    1279312938
     12939var assign = _dereq_("./Object.assign");
    1279412940var emptyFunction = _dereq_("./emptyFunction");
    1279512941var invariant = _dereq_("./invariant");
    1279612942var joinClasses = _dereq_("./joinClasses");
    12797 var merge = _dereq_("./merge");
     12943var warning = _dereq_("./warning");
     12944
     12945var didWarn = false;
    1279812946
    1279912947/**
     
    1281812966  // second object's (`value`) keys. An object's style's existing `propA` would
    1281912967  // get overridden. Flip the order here.
    12820   return merge(b, a);
     12968  return assign({}, b, a);
    1282112969});
    1282212970
     
    1283512983   */
    1283612984  className: createTransferStrategy(joinClasses),
    12837   /**
    12838    * Never transfer the `key` prop.
    12839    */
    12840   key: emptyFunction,
    12841   /**
    12842    * Never transfer the `ref` prop.
    12843    */
    12844   ref: emptyFunction,
    1284512985  /**
    1284612986   * Transfer the `style` prop (which is an object) by merging them.
     
    1289213032   */
    1289313033  mergeProps: function(oldProps, newProps) {
    12894     return transferInto(merge(oldProps), newProps);
     13034    return transferInto(assign({}, oldProps), newProps);
    1289513035  },
    1289613036
     
    1290813048     * This is usually used to pass down props to a returned root component.
    1290913049     *
    12910      * @param {ReactDescriptor} descriptor Component receiving the properties.
    12911      * @return {ReactDescriptor} The supplied `component`.
     13050     * @param {ReactElement} element Component receiving the properties.
     13051     * @return {ReactElement} The supplied `component`.
    1291213052     * @final
    1291313053     * @protected
    1291413054     */
    12915     transferPropsTo: function(descriptor) {
     13055    transferPropsTo: function(element) {
    1291613056      ("production" !== "development" ? invariant(
    12917         descriptor._owner === this,
     13057        element._owner === this,
    1291813058        '%s: You can\'t call transferPropsTo() on a component that you ' +
    1291913059        'don\'t own, %s. This usually means you are calling ' +
    1292013060        'transferPropsTo() on a component passed in as props or children.',
    1292113061        this.constructor.displayName,
    12922         descriptor.type.displayName
    12923       ) : invariant(descriptor._owner === this));
    12924 
    12925       // Because descriptors are immutable we have to merge into the existing
     13062        typeof element.type === 'string' ?
     13063        element.type :
     13064        element.type.displayName
     13065      ) : invariant(element._owner === this));
     13066
     13067      if ("production" !== "development") {
     13068        if (!didWarn) {
     13069          didWarn = true;
     13070          ("production" !== "development" ? warning(
     13071            false,
     13072            'transferPropsTo is deprecated. ' +
     13073            'See http://fb.me/react-transferpropsto for more information.'
     13074          ) : null);
     13075        }
     13076      }
     13077
     13078      // Because elements are immutable we have to merge into the existing
    1292613079      // props object rather than clone it.
    12927       transferInto(descriptor.props, this.props);
    12928 
    12929       return descriptor;
     13080      transferInto(element.props, this.props);
     13081
     13082      return element;
    1293013083    }
    1293113084
     
    1293513088module.exports = ReactPropTransferer;
    1293613089
    12937 },{"./emptyFunction":116,"./invariant":134,"./joinClasses":139,"./merge":144}],73:[function(_dereq_,module,exports){
    12938 /**
    12939  * Copyright 2013-2014 Facebook, Inc.
    12940  *
    12941  * Licensed under the Apache License, Version 2.0 (the "License");
    12942  * you may not use this file except in compliance with the License.
    12943  * You may obtain a copy of the License at
    12944  *
    12945  * http://www.apache.org/licenses/LICENSE-2.0
    12946  *
    12947  * Unless required by applicable law or agreed to in writing, software
    12948  * distributed under the License is distributed on an "AS IS" BASIS,
    12949  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12950  * See the License for the specific language governing permissions and
    12951  * limitations under the License.
     13090},{"./Object.assign":29,"./emptyFunction":121,"./invariant":140,"./joinClasses":145,"./warning":160}],77:[function(_dereq_,module,exports){
     13091/**
     13092 * Copyright 2013-2014, Facebook, Inc.
     13093 * All rights reserved.
     13094 *
     13095 * This source code is licensed under the BSD-style license found in the
     13096 * LICENSE file in the root directory of this source tree. An additional grant
     13097 * of patent rights can be found in the PATENTS file in the same directory.
    1295213098 *
    1295313099 * @providesModule ReactPropTypeLocationNames
     
    1296813114module.exports = ReactPropTypeLocationNames;
    1296913115
    12970 },{}],74:[function(_dereq_,module,exports){
    12971 /**
    12972  * Copyright 2013-2014 Facebook, Inc.
    12973  *
    12974  * Licensed under the Apache License, Version 2.0 (the "License");
    12975  * you may not use this file except in compliance with the License.
    12976  * You may obtain a copy of the License at
    12977  *
    12978  * http://www.apache.org/licenses/LICENSE-2.0
    12979  *
    12980  * Unless required by applicable law or agreed to in writing, software
    12981  * distributed under the License is distributed on an "AS IS" BASIS,
    12982  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12983  * See the License for the specific language governing permissions and
    12984  * limitations under the License.
     13116},{}],78:[function(_dereq_,module,exports){
     13117/**
     13118 * Copyright 2013-2014, Facebook, Inc.
     13119 * All rights reserved.
     13120 *
     13121 * This source code is licensed under the BSD-style license found in the
     13122 * LICENSE file in the root directory of this source tree. An additional grant
     13123 * of patent rights can be found in the PATENTS file in the same directory.
    1298513124 *
    1298613125 * @providesModule ReactPropTypeLocations
     
    1299913138module.exports = ReactPropTypeLocations;
    1300013139
    13001 },{"./keyMirror":140}],75:[function(_dereq_,module,exports){
    13002 /**
    13003  * Copyright 2013-2014 Facebook, Inc.
    13004  *
    13005  * Licensed under the Apache License, Version 2.0 (the "License");
    13006  * you may not use this file except in compliance with the License.
    13007  * You may obtain a copy of the License at
    13008  *
    13009  * http://www.apache.org/licenses/LICENSE-2.0
    13010  *
    13011  * Unless required by applicable law or agreed to in writing, software
    13012  * distributed under the License is distributed on an "AS IS" BASIS,
    13013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13014  * See the License for the specific language governing permissions and
    13015  * limitations under the License.
     13140},{"./keyMirror":146}],79:[function(_dereq_,module,exports){
     13141/**
     13142 * Copyright 2013-2014, Facebook, Inc.
     13143 * All rights reserved.
     13144 *
     13145 * This source code is licensed under the BSD-style license found in the
     13146 * LICENSE file in the root directory of this source tree. An additional grant
     13147 * of patent rights can be found in the PATENTS file in the same directory.
    1301613148 *
    1301713149 * @providesModule ReactPropTypes
     
    1302013152"use strict";
    1302113153
    13022 var ReactDescriptor = _dereq_("./ReactDescriptor");
     13154var ReactElement = _dereq_("./ReactElement");
    1302313155var ReactPropTypeLocationNames = _dereq_("./ReactPropTypeLocationNames");
    1302413156
     13157var deprecated = _dereq_("./deprecated");
    1302513158var emptyFunction = _dereq_("./emptyFunction");
    1302613159
     
    1307413207var ANONYMOUS = '<<anonymous>>';
    1307513208
     13209var elementTypeChecker = createElementTypeChecker();
     13210var nodeTypeChecker = createNodeChecker();
     13211
    1307613212var ReactPropTypes = {
    1307713213  array: createPrimitiveTypeChecker('array'),
     
    1308413220  any: createAnyTypeChecker(),
    1308513221  arrayOf: createArrayOfTypeChecker,
    13086   component: createComponentTypeChecker(),
     13222  element: elementTypeChecker,
    1308713223  instanceOf: createInstanceTypeChecker,
     13224  node: nodeTypeChecker,
    1308813225  objectOf: createObjectOfTypeChecker,
    1308913226  oneOf: createEnumTypeChecker,
    1309013227  oneOfType: createUnionTypeChecker,
    13091   renderable: createRenderableTypeChecker(),
    13092   shape: createShapeTypeChecker
     13228  shape: createShapeTypeChecker,
     13229
     13230  component: deprecated(
     13231    'React.PropTypes',
     13232    'component',
     13233    'element',
     13234    this,
     13235    elementTypeChecker
     13236  ),
     13237  renderable: deprecated(
     13238    'React.PropTypes',
     13239    'renderable',
     13240    'node',
     13241    this,
     13242    nodeTypeChecker
     13243  )
    1309313244};
    1309413245
     
    1316013311}
    1316113312
    13162 function createComponentTypeChecker() {
     13313function createElementTypeChecker() {
    1316313314  function validate(props, propName, componentName, location) {
    13164     if (!ReactDescriptor.isValidDescriptor(props[propName])) {
     13315    if (!ReactElement.isValidElement(props[propName])) {
    1316513316      var locationName = ReactPropTypeLocationNames[location];
    1316613317      return new Error(
    1316713318        ("Invalid " + locationName + " `" + propName + "` supplied to ") +
    13168         ("`" + componentName + "`, expected a React component.")
     13319        ("`" + componentName + "`, expected a ReactElement.")
    1316913320      );
    1317013321    }
     
    1324713398}
    1324813399
    13249 function createRenderableTypeChecker() {
     13400function createNodeChecker() {
    1325013401  function validate(props, propName, componentName, location) {
    13251     if (!isRenderable(props[propName])) {
     13402    if (!isNode(props[propName])) {
    1325213403      var locationName = ReactPropTypeLocationNames[location];
    1325313404      return new Error(
    1325413405        ("Invalid " + locationName + " `" + propName + "` supplied to ") +
    13255         ("`" + componentName + "`, expected a renderable prop.")
     13406        ("`" + componentName + "`, expected a ReactNode.")
    1325613407      );
    1325713408    }
     
    1328513436}
    1328613437
    13287 function isRenderable(propValue) {
     13438function isNode(propValue) {
    1328813439  switch(typeof propValue) {
    13289     // TODO: this was probably written with the assumption that we're not
    13290     // returning `this.props.component` directly from `render`. This is
    13291     // currently not supported but we should, to make it consistent.
    1329213440    case 'number':
    1329313441    case 'string':
     
    1329713445    case 'object':
    1329813446      if (Array.isArray(propValue)) {
    13299         return propValue.every(isRenderable);
     13447        return propValue.every(isNode);
    1330013448      }
    13301       if (ReactDescriptor.isValidDescriptor(propValue)) {
     13449      if (ReactElement.isValidElement(propValue)) {
    1330213450        return true;
    1330313451      }
    1330413452      for (var k in propValue) {
    13305         if (!isRenderable(propValue[k])) {
     13453        if (!isNode(propValue[k])) {
    1330613454          return false;
    1330713455        }
     
    1334413492module.exports = ReactPropTypes;
    1334513493
    13346 },{"./ReactDescriptor":56,"./ReactPropTypeLocationNames":73,"./emptyFunction":116}],76:[function(_dereq_,module,exports){
    13347 /**
    13348  * Copyright 2013-2014 Facebook, Inc.
    13349  *
    13350  * Licensed under the Apache License, Version 2.0 (the "License");
    13351  * you may not use this file except in compliance with the License.
    13352  * You may obtain a copy of the License at
    13353  *
    13354  * http://www.apache.org/licenses/LICENSE-2.0
    13355  *
    13356  * Unless required by applicable law or agreed to in writing, software
    13357  * distributed under the License is distributed on an "AS IS" BASIS,
    13358  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13359  * See the License for the specific language governing permissions and
    13360  * limitations under the License.
     13494},{"./ReactElement":58,"./ReactPropTypeLocationNames":77,"./deprecated":120,"./emptyFunction":121}],80:[function(_dereq_,module,exports){
     13495/**
     13496 * Copyright 2013-2014, Facebook, Inc.
     13497 * All rights reserved.
     13498 *
     13499 * This source code is licensed under the BSD-style license found in the
     13500 * LICENSE file in the root directory of this source tree. An additional grant
     13501 * of patent rights can be found in the PATENTS file in the same directory.
    1336113502 *
    1336213503 * @providesModule ReactPutListenerQueue
     
    1336813509var ReactBrowserEventEmitter = _dereq_("./ReactBrowserEventEmitter");
    1336913510
    13370 var mixInto = _dereq_("./mixInto");
     13511var assign = _dereq_("./Object.assign");
    1337113512
    1337213513function ReactPutListenerQueue() {
     
    1337413515}
    1337513516
    13376 mixInto(ReactPutListenerQueue, {
     13517assign(ReactPutListenerQueue.prototype, {
    1337713518  enqueuePutListener: function(rootNodeID, propKey, propValue) {
    1337813519    this.listenersToPut.push({
     
    1340713548module.exports = ReactPutListenerQueue;
    1340813549
    13409 },{"./PooledClass":28,"./ReactBrowserEventEmitter":31,"./mixInto":147}],77:[function(_dereq_,module,exports){
    13410 /**
    13411  * Copyright 2013-2014 Facebook, Inc.
    13412  *
    13413  * Licensed under the Apache License, Version 2.0 (the "License");
    13414  * you may not use this file except in compliance with the License.
    13415  * You may obtain a copy of the License at
    13416  *
    13417  * http://www.apache.org/licenses/LICENSE-2.0
    13418  *
    13419  * Unless required by applicable law or agreed to in writing, software
    13420  * distributed under the License is distributed on an "AS IS" BASIS,
    13421  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13422  * See the License for the specific language governing permissions and
    13423  * limitations under the License.
     13550},{"./Object.assign":29,"./PooledClass":30,"./ReactBrowserEventEmitter":33}],81:[function(_dereq_,module,exports){
     13551/**
     13552 * Copyright 2013-2014, Facebook, Inc.
     13553 * All rights reserved.
     13554 *
     13555 * This source code is licensed under the BSD-style license found in the
     13556 * LICENSE file in the root directory of this source tree. An additional grant
     13557 * of patent rights can be found in the PATENTS file in the same directory.
    1342413558 *
    1342513559 * @providesModule ReactReconcileTransaction
     
    1343613570var Transaction = _dereq_("./Transaction");
    1343713571
    13438 var mixInto = _dereq_("./mixInto");
     13572var assign = _dereq_("./Object.assign");
    1343913573
    1344013574/**
     
    1358413718
    1358513719
    13586 mixInto(ReactReconcileTransaction, Transaction.Mixin);
    13587 mixInto(ReactReconcileTransaction, Mixin);
     13720assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);
    1358813721
    1358913722PooledClass.addPoolingTo(ReactReconcileTransaction);
     
    1359113724module.exports = ReactReconcileTransaction;
    1359213725
    13593 },{"./CallbackQueue":6,"./PooledClass":28,"./ReactBrowserEventEmitter":31,"./ReactInputSelection":63,"./ReactPutListenerQueue":76,"./Transaction":104,"./mixInto":147}],78:[function(_dereq_,module,exports){
    13594 /**
    13595  * Copyright 2013-2014 Facebook, Inc.
    13596  *
    13597  * Licensed under the Apache License, Version 2.0 (the "License");
    13598  * you may not use this file except in compliance with the License.
    13599  * You may obtain a copy of the License at
    13600  *
    13601  * http://www.apache.org/licenses/LICENSE-2.0
    13602  *
    13603  * Unless required by applicable law or agreed to in writing, software
    13604  * distributed under the License is distributed on an "AS IS" BASIS,
    13605  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13606  * See the License for the specific language governing permissions and
    13607  * limitations under the License.
     13726},{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactBrowserEventEmitter":33,"./ReactInputSelection":65,"./ReactPutListenerQueue":80,"./Transaction":107}],82:[function(_dereq_,module,exports){
     13727/**
     13728 * Copyright 2013-2014, Facebook, Inc.
     13729 * All rights reserved.
     13730 *
     13731 * This source code is licensed under the BSD-style license found in the
     13732 * LICENSE file in the root directory of this source tree. An additional grant
     13733 * of patent rights can be found in the PATENTS file in the same directory.
    1360813734 *
    1360913735 * @providesModule ReactRootIndex
     
    1362913755module.exports = ReactRootIndex;
    1363013756
    13631 },{}],79:[function(_dereq_,module,exports){
    13632 /**
    13633  * Copyright 2013-2014 Facebook, Inc.
    13634  *
    13635  * Licensed under the Apache License, Version 2.0 (the "License");
    13636  * you may not use this file except in compliance with the License.
    13637  * You may obtain a copy of the License at
    13638  *
    13639  * http://www.apache.org/licenses/LICENSE-2.0
    13640  *
    13641  * Unless required by applicable law or agreed to in writing, software
    13642  * distributed under the License is distributed on an "AS IS" BASIS,
    13643  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13644  * See the License for the specific language governing permissions and
    13645  * limitations under the License.
     13757},{}],83:[function(_dereq_,module,exports){
     13758/**
     13759 * Copyright 2013-2014, Facebook, Inc.
     13760 * All rights reserved.
     13761 *
     13762 * This source code is licensed under the BSD-style license found in the
     13763 * LICENSE file in the root directory of this source tree. An additional grant
     13764 * of patent rights can be found in the PATENTS file in the same directory.
    1364613765 *
    1364713766 * @typechecks static-only
     
    1365013769"use strict";
    1365113770
    13652 var ReactDescriptor = _dereq_("./ReactDescriptor");
     13771var ReactElement = _dereq_("./ReactElement");
    1365313772var ReactInstanceHandles = _dereq_("./ReactInstanceHandles");
    1365413773var ReactMarkupChecksum = _dereq_("./ReactMarkupChecksum");
     
    1366013779
    1366113780/**
    13662  * @param {ReactComponent} component
     13781 * @param {ReactElement} element
    1366313782 * @return {string} the HTML markup
    1366413783 */
    13665 function renderComponentToString(component) {
     13784function renderToString(element) {
    1366613785  ("production" !== "development" ? invariant(
    13667     ReactDescriptor.isValidDescriptor(component),
    13668     'renderComponentToString(): You must pass a valid ReactComponent.'
    13669   ) : invariant(ReactDescriptor.isValidDescriptor(component)));
    13670 
    13671   ("production" !== "development" ? invariant(
    13672     !(arguments.length === 2 && typeof arguments[1] === 'function'),
    13673     'renderComponentToString(): This function became synchronous and now ' +
    13674     'returns the generated markup. Please remove the second parameter.'
    13675   ) : invariant(!(arguments.length === 2 && typeof arguments[1] === 'function')));
     13786    ReactElement.isValidElement(element),
     13787    'renderToString(): You must pass a valid ReactElement.'
     13788  ) : invariant(ReactElement.isValidElement(element)));
    1367613789
    1367713790  var transaction;
     
    1368113794
    1368213795    return transaction.perform(function() {
    13683       var componentInstance = instantiateReactComponent(component);
     13796      var componentInstance = instantiateReactComponent(element, null);
    1368413797      var markup = componentInstance.mountComponent(id, transaction, 0);
    1368513798      return ReactMarkupChecksum.addChecksumToMarkup(markup);
     
    1369113804
    1369213805/**
    13693  * @param {ReactComponent} component
     13806 * @param {ReactElement} element
    1369413807 * @return {string} the HTML markup, without the extra React ID and checksum
    13695 * (for generating static pages)
    13696  */
    13697 function renderComponentToStaticMarkup(component) {
     13808 * (for generating static pages)
     13809 */
     13810function renderToStaticMarkup(element) {
    1369813811  ("production" !== "development" ? invariant(
    13699     ReactDescriptor.isValidDescriptor(component),
    13700     'renderComponentToStaticMarkup(): You must pass a valid ReactComponent.'
    13701   ) : invariant(ReactDescriptor.isValidDescriptor(component)));
     13812    ReactElement.isValidElement(element),
     13813    'renderToStaticMarkup(): You must pass a valid ReactElement.'
     13814  ) : invariant(ReactElement.isValidElement(element)));
    1370213815
    1370313816  var transaction;
     
    1370713820
    1370813821    return transaction.perform(function() {
    13709       var componentInstance = instantiateReactComponent(component);
     13822      var componentInstance = instantiateReactComponent(element, null);
    1371013823      return componentInstance.mountComponent(id, transaction, 0);
    1371113824    }, null);
     
    1371613829
    1371713830module.exports = {
    13718   renderComponentToString: renderComponentToString,
    13719   renderComponentToStaticMarkup: renderComponentToStaticMarkup
     13831  renderToString: renderToString,
     13832  renderToStaticMarkup: renderToStaticMarkup
    1372013833};
    1372113834
    13722 },{"./ReactDescriptor":56,"./ReactInstanceHandles":64,"./ReactMarkupChecksum":66,"./ReactServerRenderingTransaction":80,"./instantiateReactComponent":133,"./invariant":134}],80:[function(_dereq_,module,exports){
    13723 /**
    13724  * Copyright 2014 Facebook, Inc.
    13725  *
    13726  * Licensed under the Apache License, Version 2.0 (the "License");
    13727  * you may not use this file except in compliance with the License.
    13728  * You may obtain a copy of the License at
    13729  *
    13730  * http://www.apache.org/licenses/LICENSE-2.0
    13731  *
    13732  * Unless required by applicable law or agreed to in writing, software
    13733  * distributed under the License is distributed on an "AS IS" BASIS,
    13734  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13735  * See the License for the specific language governing permissions and
    13736  * limitations under the License.
     13835},{"./ReactElement":58,"./ReactInstanceHandles":66,"./ReactMarkupChecksum":69,"./ReactServerRenderingTransaction":84,"./instantiateReactComponent":139,"./invariant":140}],84:[function(_dereq_,module,exports){
     13836/**
     13837 * Copyright 2014, Facebook, Inc.
     13838 * All rights reserved.
     13839 *
     13840 * This source code is licensed under the BSD-style license found in the
     13841 * LICENSE file in the root directory of this source tree. An additional grant
     13842 * of patent rights can be found in the PATENTS file in the same directory.
    1373713843 *
    1373813844 * @providesModule ReactServerRenderingTransaction
     
    1374713853var Transaction = _dereq_("./Transaction");
    1374813854
     13855var assign = _dereq_("./Object.assign");
    1374913856var emptyFunction = _dereq_("./emptyFunction");
    13750 var mixInto = _dereq_("./mixInto");
    1375113857
    1375213858/**
     
    1383013936
    1383113937
    13832 mixInto(ReactServerRenderingTransaction, Transaction.Mixin);
    13833 mixInto(ReactServerRenderingTransaction, Mixin);
     13938assign(
     13939  ReactServerRenderingTransaction.prototype,
     13940  Transaction.Mixin,
     13941  Mixin
     13942);
    1383413943
    1383513944PooledClass.addPoolingTo(ReactServerRenderingTransaction);
     
    1383713946module.exports = ReactServerRenderingTransaction;
    1383813947
    13839 },{"./CallbackQueue":6,"./PooledClass":28,"./ReactPutListenerQueue":76,"./Transaction":104,"./emptyFunction":116,"./mixInto":147}],81:[function(_dereq_,module,exports){
    13840 /**
    13841  * Copyright 2013-2014 Facebook, Inc.
    13842  *
    13843  * Licensed under the Apache License, Version 2.0 (the "License");
    13844  * you may not use this file except in compliance with the License.
    13845  * You may obtain a copy of the License at
    13846  *
    13847  * http://www.apache.org/licenses/LICENSE-2.0
    13848  *
    13849  * Unless required by applicable law or agreed to in writing, software
    13850  * distributed under the License is distributed on an "AS IS" BASIS,
    13851  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13852  * See the License for the specific language governing permissions and
    13853  * limitations under the License.
     13948},{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactPutListenerQueue":80,"./Transaction":107,"./emptyFunction":121}],85:[function(_dereq_,module,exports){
     13949/**
     13950 * Copyright 2013-2014, Facebook, Inc.
     13951 * All rights reserved.
     13952 *
     13953 * This source code is licensed under the BSD-style license found in the
     13954 * LICENSE file in the root directory of this source tree. An additional grant
     13955 * of patent rights can be found in the PATENTS file in the same directory.
    1385413956 *
    1385513957 * @providesModule ReactStateSetters
     
    1395014052module.exports = ReactStateSetters;
    1395114053
    13952 },{}],82:[function(_dereq_,module,exports){
    13953 /**
    13954  * Copyright 2013-2014 Facebook, Inc.
    13955  *
    13956  * Licensed under the Apache License, Version 2.0 (the "License");
    13957  * you may not use this file except in compliance with the License.
    13958  * You may obtain a copy of the License at
    13959  *
    13960  * http://www.apache.org/licenses/LICENSE-2.0
    13961  *
    13962  * Unless required by applicable law or agreed to in writing, software
    13963  * distributed under the License is distributed on an "AS IS" BASIS,
    13964  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13965  * See the License for the specific language governing permissions and
    13966  * limitations under the License.
     14054},{}],86:[function(_dereq_,module,exports){
     14055/**
     14056 * Copyright 2013-2014, Facebook, Inc.
     14057 * All rights reserved.
     14058 *
     14059 * This source code is licensed under the BSD-style license found in the
     14060 * LICENSE file in the root directory of this source tree. An additional grant
     14061 * of patent rights can be found in the PATENTS file in the same directory.
    1396714062 *
    1396814063 * @providesModule ReactTestUtils
     
    1397514070var EventPropagators = _dereq_("./EventPropagators");
    1397614071var React = _dereq_("./React");
    13977 var ReactDescriptor = _dereq_("./ReactDescriptor");
    13978 var ReactDOM = _dereq_("./ReactDOM");
     14072var ReactElement = _dereq_("./ReactElement");
    1397914073var ReactBrowserEventEmitter = _dereq_("./ReactBrowserEventEmitter");
    1398014074var ReactMount = _dereq_("./ReactMount");
     
    1398314077var SyntheticEvent = _dereq_("./SyntheticEvent");
    1398414078
    13985 var mergeInto = _dereq_("./mergeInto");
    13986 var copyProperties = _dereq_("./copyProperties");
     14079var assign = _dereq_("./Object.assign");
    1398714080
    1398814081var topLevelTypes = EventConstants.topLevelTypes;
     
    1400714100    // (and probably rename it eventually) if no problems arise.
    1400814101    // document.documentElement.appendChild(div);
    14009     return React.renderComponent(instance, div);
    14010   },
    14011 
    14012   isDescriptor: function(descriptor) {
    14013     return ReactDescriptor.isValidDescriptor(descriptor);
    14014   },
    14015 
    14016   isDescriptorOfType: function(inst, convenienceConstructor) {
     14102    return React.render(instance, div);
     14103  },
     14104
     14105  isElement: function(element) {
     14106    return ReactElement.isValidElement(element);
     14107  },
     14108
     14109  isElementOfType: function(inst, convenienceConstructor) {
    1401714110    return (
    14018       ReactDescriptor.isValidDescriptor(inst) &&
     14111      ReactElement.isValidElement(inst) &&
    1401914112      inst.type === convenienceConstructor.type
    1402014113    );
     
    1402514118  },
    1402614119
    14027   isDOMComponentDescriptor: function(inst) {
     14120  isDOMComponentElement: function(inst) {
    1402814121    return !!(inst &&
    14029               ReactDescriptor.isValidDescriptor(inst) &&
     14122              ReactElement.isValidElement(inst) &&
    1403014123              !!inst.tagName);
    1403114124  },
     
    1404114134  },
    1404214135
    14043   isCompositeComponentDescriptor: function(inst) {
    14044     if (!ReactDescriptor.isValidDescriptor(inst)) {
     14136  isCompositeComponentElement: function(inst) {
     14137    if (!ReactElement.isValidElement(inst)) {
    1404514138      return false;
    1404614139    }
     
    1405414147  },
    1405514148
    14056   isCompositeComponentDescriptorWithType: function(inst, type) {
    14057     return !!(ReactTestUtils.isCompositeComponentDescriptor(inst) &&
     14149  isCompositeComponentElementWithType: function(inst, type) {
     14150    return !!(ReactTestUtils.isCompositeComponentElement(inst) &&
    1405814151             (inst.constructor === type));
    1405914152  },
     
    1419114284   */
    1419214285  mockComponent: function(module, mockTagName) {
    14193     var ConvenienceConstructor = React.createClass({
     14286    mockTagName = mockTagName || module.mockTagName || "div";
     14287
     14288    var ConvenienceConstructor = React.createClass({displayName: 'ConvenienceConstructor',
    1419414289      render: function() {
    14195         var mockTagName = mockTagName || module.mockTagName || "div";
    14196         return ReactDOM[mockTagName](null, this.props.children);
     14290        return React.createElement(
     14291          mockTagName,
     14292          null,
     14293          this.props.children
     14294        );
    1419714295      }
    1419814296    });
    1419914297
    14200     copyProperties(module, ConvenienceConstructor);
    1420114298    module.mockImplementation(ConvenienceConstructor);
     14299
     14300    module.type = ConvenienceConstructor.type;
     14301    module.isReactLegacyFactory = true;
    1420214302
    1420314303    return this;
     
    1427514375      fakeNativeEvent
    1427614376    );
    14277     mergeInto(event, eventData);
     14377    assign(event, eventData);
    1427814378    EventPropagators.accumulateTwoPhaseDispatches(event);
    1427914379
     
    1433114431  return function(domComponentOrNode, nativeEventData) {
    1433214432    var fakeNativeEvent = new Event(eventType);
    14333     mergeInto(fakeNativeEvent, nativeEventData);
     14433    assign(fakeNativeEvent, nativeEventData);
    1433414434    if (ReactTestUtils.isDOMComponent(domComponentOrNode)) {
    1433514435      ReactTestUtils.simulateNativeEventOnDOMComponent(
     
    1436414464module.exports = ReactTestUtils;
    1436514465
    14366 },{"./EventConstants":16,"./EventPluginHub":18,"./EventPropagators":21,"./React":29,"./ReactBrowserEventEmitter":31,"./ReactDOM":41,"./ReactDescriptor":56,"./ReactMount":67,"./ReactTextComponent":83,"./ReactUpdates":87,"./SyntheticEvent":96,"./copyProperties":110,"./mergeInto":146}],83:[function(_dereq_,module,exports){
    14367 /**
    14368  * Copyright 2013-2014 Facebook, Inc.
    14369  *
    14370  * Licensed under the Apache License, Version 2.0 (the "License");
    14371  * you may not use this file except in compliance with the License.
    14372  * You may obtain a copy of the License at
    14373  *
    14374  * http://www.apache.org/licenses/LICENSE-2.0
    14375  *
    14376  * Unless required by applicable law or agreed to in writing, software
    14377  * distributed under the License is distributed on an "AS IS" BASIS,
    14378  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14379  * See the License for the specific language governing permissions and
    14380  * limitations under the License.
     14466},{"./EventConstants":17,"./EventPluginHub":19,"./EventPropagators":22,"./Object.assign":29,"./React":31,"./ReactBrowserEventEmitter":33,"./ReactElement":58,"./ReactMount":70,"./ReactTextComponent":87,"./ReactUpdates":91,"./SyntheticEvent":99}],87:[function(_dereq_,module,exports){
     14467/**
     14468 * Copyright 2013-2014, Facebook, Inc.
     14469 * All rights reserved.
     14470 *
     14471 * This source code is licensed under the BSD-style license found in the
     14472 * LICENSE file in the root directory of this source tree. An additional grant
     14473 * of patent rights can be found in the PATENTS file in the same directory.
    1438114474 *
    1438214475 * @providesModule ReactTextComponent
     
    1438714480
    1438814481var DOMPropertyOperations = _dereq_("./DOMPropertyOperations");
    14389 var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin");
    1439014482var ReactComponent = _dereq_("./ReactComponent");
    14391 var ReactDescriptor = _dereq_("./ReactDescriptor");
    14392 
     14483var ReactElement = _dereq_("./ReactElement");
     14484
     14485var assign = _dereq_("./Object.assign");
    1439314486var escapeTextForBrowser = _dereq_("./escapeTextForBrowser");
    14394 var mixInto = _dereq_("./mixInto");
    1439514487
    1439614488/**
     
    1440914501 * @internal
    1441014502 */
    14411 var ReactTextComponent = function(descriptor) {
    14412   this.construct(descriptor);
     14503var ReactTextComponent = function(props) {
     14504  // This constructor and it's argument is currently used by mocks.
    1441314505};
    1441414506
    14415 mixInto(ReactTextComponent, ReactComponent.Mixin);
    14416 mixInto(ReactTextComponent, ReactBrowserComponentMixin);
    14417 mixInto(ReactTextComponent, {
     14507assign(ReactTextComponent.prototype, ReactComponent.Mixin, {
    1441814508
    1441914509  /**
     
    1447114561});
    1447214562
    14473 module.exports = ReactDescriptor.createFactory(ReactTextComponent);
    14474 
    14475 },{"./DOMPropertyOperations":12,"./ReactBrowserComponentMixin":30,"./ReactComponent":35,"./ReactDescriptor":56,"./escapeTextForBrowser":118,"./mixInto":147}],84:[function(_dereq_,module,exports){
    14476 /**
    14477  * Copyright 2013-2014 Facebook, Inc.
    14478  *
    14479  * Licensed under the Apache License, Version 2.0 (the "License");
    14480  * you may not use this file except in compliance with the License.
    14481  * You may obtain a copy of the License at
    14482  *
    14483  * http://www.apache.org/licenses/LICENSE-2.0
    14484  *
    14485  * Unless required by applicable law or agreed to in writing, software
    14486  * distributed under the License is distributed on an "AS IS" BASIS,
    14487  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14488  * See the License for the specific language governing permissions and
    14489  * limitations under the License.
     14563var ReactTextComponentFactory = function(text) {
     14564  // Bypass validation and configuration
     14565  return new ReactElement(ReactTextComponent, null, null, null, null, text);
     14566};
     14567
     14568ReactTextComponentFactory.type = ReactTextComponent;
     14569
     14570module.exports = ReactTextComponentFactory;
     14571
     14572},{"./DOMPropertyOperations":13,"./Object.assign":29,"./ReactComponent":37,"./ReactElement":58,"./escapeTextForBrowser":123}],88:[function(_dereq_,module,exports){
     14573/**
     14574 * Copyright 2013-2014, Facebook, Inc.
     14575 * All rights reserved.
     14576 *
     14577 * This source code is licensed under the BSD-style license found in the
     14578 * LICENSE file in the root directory of this source tree. An additional grant
     14579 * of patent rights can be found in the PATENTS file in the same directory.
    1449014580 *
    1449114581 * @typechecks static-only
     
    1451314603  /**
    1451414604   * When you're adding or removing children some may be added or removed in the
    14515    * same render pass. We want ot show *both* since we want to simultaneously
     14605   * same render pass. We want to show *both* since we want to simultaneously
    1451614606   * animate elements in and out. This function takes a previous set of keys
    1451714607   * and a new set of keys and merges them with its best guess of the correct
     
    1458114671module.exports = ReactTransitionChildMapping;
    1458214672
    14583 },{"./ReactChildren":34}],85:[function(_dereq_,module,exports){
    14584 /**
    14585  * Copyright 2013-2014 Facebook, Inc.
    14586  *
    14587  * Licensed under the Apache License, Version 2.0 (the "License");
    14588  * you may not use this file except in compliance with the License.
    14589  * You may obtain a copy of the License at
    14590  *
    14591  * http://www.apache.org/licenses/LICENSE-2.0
    14592  *
    14593  * Unless required by applicable law or agreed to in writing, software
    14594  * distributed under the License is distributed on an "AS IS" BASIS,
    14595  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14596  * See the License for the specific language governing permissions and
    14597  * limitations under the License.
     14673},{"./ReactChildren":36}],89:[function(_dereq_,module,exports){
     14674/**
     14675 * Copyright 2013-2014, Facebook, Inc.
     14676 * All rights reserved.
     14677 *
     14678 * This source code is licensed under the BSD-style license found in the
     14679 * LICENSE file in the root directory of this source tree. An additional grant
     14680 * of patent rights can be found in the PATENTS file in the same directory.
    1459814681 *
    1459914682 * @providesModule ReactTransitionEvents
     
    1469914782module.exports = ReactTransitionEvents;
    1470014783
    14701 },{"./ExecutionEnvironment":22}],86:[function(_dereq_,module,exports){
    14702 /**
    14703  * Copyright 2013-2014 Facebook, Inc.
    14704  *
    14705  * Licensed under the Apache License, Version 2.0 (the "License");
    14706  * you may not use this file except in compliance with the License.
    14707  * You may obtain a copy of the License at
    14708  *
    14709  * http://www.apache.org/licenses/LICENSE-2.0
    14710  *
    14711  * Unless required by applicable law or agreed to in writing, software
    14712  * distributed under the License is distributed on an "AS IS" BASIS,
    14713  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14714  * See the License for the specific language governing permissions and
    14715  * limitations under the License.
     14784},{"./ExecutionEnvironment":23}],90:[function(_dereq_,module,exports){
     14785/**
     14786 * Copyright 2013-2014, Facebook, Inc.
     14787 * All rights reserved.
     14788 *
     14789 * This source code is licensed under the BSD-style license found in the
     14790 * LICENSE file in the root directory of this source tree. An additional grant
     14791 * of patent rights can be found in the PATENTS file in the same directory.
    1471614792 *
    1471714793 * @providesModule ReactTransitionGroup
     
    1472314799var ReactTransitionChildMapping = _dereq_("./ReactTransitionChildMapping");
    1472414800
     14801var assign = _dereq_("./Object.assign");
    1472514802var cloneWithProps = _dereq_("./cloneWithProps");
    1472614803var emptyFunction = _dereq_("./emptyFunction");
    14727 var merge = _dereq_("./merge");
    1472814804
    1472914805var ReactTransitionGroup = React.createClass({
     
    1473114807
    1473214808  propTypes: {
    14733     component: React.PropTypes.func,
     14809    component: React.PropTypes.any,
    1473414810    childFactory: React.PropTypes.func
    1473514811  },
     
    1473714813  getDefaultProps: function() {
    1473814814    return {
    14739       component: React.DOM.span,
     14815      component: 'span',
    1474014816      childFactory: emptyFunction.thatReturnsArgument
    1474114817    };
     
    1486114937      this.performEnter(key);
    1486214938    } else {
    14863       var newChildren = merge(this.state.children);
     14939      var newChildren = assign({}, this.state.children);
    1486414940      delete newChildren[key];
    1486514941      this.setState({children: newChildren});
     
    1488514961      }
    1488614962    }
    14887     return this.transferPropsTo(this.props.component(null, childrenToRender));
     14963    return React.createElement(
     14964      this.props.component,
     14965      this.props,
     14966      childrenToRender
     14967    );
    1488814968  }
    1488914969});
     
    1489114971module.exports = ReactTransitionGroup;
    1489214972
    14893 },{"./React":29,"./ReactTransitionChildMapping":84,"./cloneWithProps":108,"./emptyFunction":116,"./merge":144}],87:[function(_dereq_,module,exports){
    14894 /**
    14895  * Copyright 2013-2014 Facebook, Inc.
    14896  *
    14897  * Licensed under the Apache License, Version 2.0 (the "License");
    14898  * you may not use this file except in compliance with the License.
    14899  * You may obtain a copy of the License at
    14900  *
    14901  * http://www.apache.org/licenses/LICENSE-2.0
    14902  *
    14903  * Unless required by applicable law or agreed to in writing, software
    14904  * distributed under the License is distributed on an "AS IS" BASIS,
    14905  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14906  * See the License for the specific language governing permissions and
    14907  * limitations under the License.
     14973},{"./Object.assign":29,"./React":31,"./ReactTransitionChildMapping":88,"./cloneWithProps":113,"./emptyFunction":121}],91:[function(_dereq_,module,exports){
     14974/**
     14975 * Copyright 2013-2014, Facebook, Inc.
     14976 * All rights reserved.
     14977 *
     14978 * This source code is licensed under the BSD-style license found in the
     14979 * LICENSE file in the root directory of this source tree. An additional grant
     14980 * of patent rights can be found in the PATENTS file in the same directory.
    1490814981 *
    1490914982 * @providesModule ReactUpdates
     
    1491814991var Transaction = _dereq_("./Transaction");
    1491914992
     14993var assign = _dereq_("./Object.assign");
    1492014994var invariant = _dereq_("./invariant");
    14921 var mixInto = _dereq_("./mixInto");
    1492214995var warning = _dereq_("./warning");
    1492314996
    1492414997var dirtyComponents = [];
     14998var asapCallbackQueue = CallbackQueue.getPooled();
     14999var asapEnqueued = false;
    1492515000
    1492615001var batchingStrategy = null;
     
    1496715042  this.reinitializeTransaction();
    1496815043  this.dirtyComponentsLength = null;
    14969   this.callbackQueue = CallbackQueue.getPooled(null);
     15044  this.callbackQueue = CallbackQueue.getPooled();
    1497015045  this.reconcileTransaction =
    1497115046    ReactUpdates.ReactReconcileTransaction.getPooled();
    1497215047}
    1497315048
    14974 mixInto(ReactUpdatesFlushTransaction, Transaction.Mixin);
    14975 mixInto(ReactUpdatesFlushTransaction, {
     15049assign(
     15050  ReactUpdatesFlushTransaction.prototype,
     15051  Transaction.Mixin, {
    1497615052  getTransactionWrappers: function() {
    1497715053    return TRANSACTION_WRAPPERS;
     
    1506415140    // array and perform any updates enqueued by mount-ready handlers (i.e.,
    1506515141    // componentDidUpdate) but we need to check here too in order to catch
    15066     // updates enqueued by setState callbacks.
    15067     while (dirtyComponents.length) {
    15068       var transaction = ReactUpdatesFlushTransaction.getPooled();
    15069       transaction.perform(runBatchedUpdates, null, transaction);
    15070       ReactUpdatesFlushTransaction.release(transaction);
     15142    // updates enqueued by setState callbacks and asap calls.
     15143    while (dirtyComponents.length || asapEnqueued) {
     15144      if (dirtyComponents.length) {
     15145        var transaction = ReactUpdatesFlushTransaction.getPooled();
     15146        transaction.perform(runBatchedUpdates, null, transaction);
     15147        ReactUpdatesFlushTransaction.release(transaction);
     15148      }
     15149
     15150      if (asapEnqueued) {
     15151        asapEnqueued = false;
     15152        var queue = asapCallbackQueue;
     15153        asapCallbackQueue = CallbackQueue.getPooled();
     15154        queue.notifyAll();
     15155        CallbackQueue.release(queue);
     15156      }
    1507115157    }
    1507215158  }
     
    1511315199    }
    1511415200  }
     15201}
     15202
     15203/**
     15204 * Enqueue a callback to be run at the end of the current batching cycle. Throws
     15205 * if no updates are currently being performed.
     15206 */
     15207function asap(callback, context) {
     15208  ("production" !== "development" ? invariant(
     15209    batchingStrategy.isBatchingUpdates,
     15210    'ReactUpdates.asap: Can\'t enqueue an asap callback in a context where' +
     15211    'updates are not being batched.'
     15212  ) : invariant(batchingStrategy.isBatchingUpdates));
     15213  asapCallbackQueue.enqueue(callback, context);
     15214  asapEnqueued = true;
    1511515215}
    1511615216
     
    1515315253  enqueueUpdate: enqueueUpdate,
    1515415254  flushBatchedUpdates: flushBatchedUpdates,
    15155   injection: ReactUpdatesInjection
     15255  injection: ReactUpdatesInjection,
     15256  asap: asap
    1515615257};
    1515715258
    1515815259module.exports = ReactUpdates;
    1515915260
    15160 },{"./CallbackQueue":6,"./PooledClass":28,"./ReactCurrentOwner":40,"./ReactPerf":71,"./Transaction":104,"./invariant":134,"./mixInto":147,"./warning":158}],88:[function(_dereq_,module,exports){
    15161 /**
    15162  * Copyright 2013-2014 Facebook, Inc.
    15163  *
    15164  * Licensed under the Apache License, Version 2.0 (the "License");
    15165  * you may not use this file except in compliance with the License.
    15166  * You may obtain a copy of the License at
    15167  *
    15168  * http://www.apache.org/licenses/LICENSE-2.0
    15169  *
    15170  * Unless required by applicable law or agreed to in writing, software
    15171  * distributed under the License is distributed on an "AS IS" BASIS,
    15172  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15173  * See the License for the specific language governing permissions and
    15174  * limitations under the License.
    15175  *
    15176  * @providesModule ReactWithAddons
    15177  */
    15178 
    15179 /**
    15180  * This module exists purely in the open source project, and is meant as a way
    15181  * to create a separate standalone build of React. This build has "addons", or
    15182  * functionality we've built and think might be useful but doesn't have a good
    15183  * place to live inside React core.
    15184  */
    15185 
    15186 "use strict";
    15187 
    15188 var LinkedStateMixin = _dereq_("./LinkedStateMixin");
    15189 var React = _dereq_("./React");
    15190 var ReactComponentWithPureRenderMixin =
    15191   _dereq_("./ReactComponentWithPureRenderMixin");
    15192 var ReactCSSTransitionGroup = _dereq_("./ReactCSSTransitionGroup");
    15193 var ReactTransitionGroup = _dereq_("./ReactTransitionGroup");
    15194 
    15195 var cx = _dereq_("./cx");
    15196 var cloneWithProps = _dereq_("./cloneWithProps");
    15197 var update = _dereq_("./update");
    15198 
    15199 React.addons = {
    15200   CSSTransitionGroup: ReactCSSTransitionGroup,
    15201   LinkedStateMixin: LinkedStateMixin,
    15202   PureRenderMixin: ReactComponentWithPureRenderMixin,
    15203   TransitionGroup: ReactTransitionGroup,
    15204 
    15205   classSet: cx,
    15206   cloneWithProps: cloneWithProps,
    15207   update: update
    15208 };
    15209 
    15210 if ("production" !== "development") {
    15211   React.addons.Perf = _dereq_("./ReactDefaultPerf");
    15212   React.addons.TestUtils = _dereq_("./ReactTestUtils");
    15213 }
    15214 
    15215 module.exports = React;
    15216 
    15217 
    15218 },{"./LinkedStateMixin":24,"./React":29,"./ReactCSSTransitionGroup":32,"./ReactComponentWithPureRenderMixin":37,"./ReactDefaultPerf":54,"./ReactTestUtils":82,"./ReactTransitionGroup":86,"./cloneWithProps":108,"./cx":114,"./update":157}],89:[function(_dereq_,module,exports){
    15219 /**
    15220  * Copyright 2013-2014 Facebook, Inc.
    15221  *
    15222  * Licensed under the Apache License, Version 2.0 (the "License");
    15223  * you may not use this file except in compliance with the License.
    15224  * You may obtain a copy of the License at
    15225  *
    15226  * http://www.apache.org/licenses/LICENSE-2.0
    15227  *
    15228  * Unless required by applicable law or agreed to in writing, software
    15229  * distributed under the License is distributed on an "AS IS" BASIS,
    15230  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15231  * See the License for the specific language governing permissions and
    15232  * limitations under the License.
     15261},{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactCurrentOwner":42,"./ReactPerf":75,"./Transaction":107,"./invariant":140,"./warning":160}],92:[function(_dereq_,module,exports){
     15262/**
     15263 * Copyright 2013-2014, Facebook, Inc.
     15264 * All rights reserved.
     15265 *
     15266 * This source code is licensed under the BSD-style license found in the
     15267 * LICENSE file in the root directory of this source tree. An additional grant
     15268 * of patent rights can be found in the PATENTS file in the same directory.
    1523315269 *
    1523415270 * @providesModule SVGDOMPropertyConfig
     
    1531515351module.exports = SVGDOMPropertyConfig;
    1531615352
    15317 },{"./DOMProperty":11}],90:[function(_dereq_,module,exports){
    15318 /**
    15319  * Copyright 2013-2014 Facebook, Inc.
    15320  *
    15321  * Licensed under the Apache License, Version 2.0 (the "License");
    15322  * you may not use this file except in compliance with the License.
    15323  * You may obtain a copy of the License at
    15324  *
    15325  * http://www.apache.org/licenses/LICENSE-2.0
    15326  *
    15327  * Unless required by applicable law or agreed to in writing, software
    15328  * distributed under the License is distributed on an "AS IS" BASIS,
    15329  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15330  * See the License for the specific language governing permissions and
    15331  * limitations under the License.
     15353},{"./DOMProperty":12}],93:[function(_dereq_,module,exports){
     15354/**
     15355 * Copyright 2013-2014, Facebook, Inc.
     15356 * All rights reserved.
     15357 *
     15358 * This source code is licensed under the BSD-style license found in the
     15359 * LICENSE file in the root directory of this source tree. An additional grant
     15360 * of patent rights can be found in the PATENTS file in the same directory.
    1533215361 *
    1533315362 * @providesModule SelectEventPlugin
     
    1538715416      end: node.selectionEnd
    1538815417    };
     15418  } else if (window.getSelection) {
     15419    var selection = window.getSelection();
     15420    return {
     15421      anchorNode: selection.anchorNode,
     15422      anchorOffset: selection.anchorOffset,
     15423      focusNode: selection.focusNode,
     15424      focusOffset: selection.focusOffset
     15425    };
    1538915426  } else if (document.selection) {
    1539015427    var range = document.selection.createRange();
     
    1539415431      top: range.boundingTop,
    1539515432      left: range.boundingLeft
    15396     };
    15397   } else {
    15398     var selection = window.getSelection();
    15399     return {
    15400       anchorNode: selection.anchorNode,
    15401       anchorOffset: selection.anchorOffset,
    15402       focusNode: selection.focusNode,
    15403       focusOffset: selection.focusOffset
    1540415433    };
    1540515434  }
     
    1551715546module.exports = SelectEventPlugin;
    1551815547
    15519 },{"./EventConstants":16,"./EventPropagators":21,"./ReactInputSelection":63,"./SyntheticEvent":96,"./getActiveElement":122,"./isTextInputElement":137,"./keyOf":141,"./shallowEqual":153}],91:[function(_dereq_,module,exports){
    15520 /**
    15521  * Copyright 2013-2014 Facebook, Inc.
    15522  *
    15523  * Licensed under the Apache License, Version 2.0 (the "License");
    15524  * you may not use this file except in compliance with the License.
    15525  * You may obtain a copy of the License at
    15526  *
    15527  * http://www.apache.org/licenses/LICENSE-2.0
    15528  *
    15529  * Unless required by applicable law or agreed to in writing, software
    15530  * distributed under the License is distributed on an "AS IS" BASIS,
    15531  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15532  * See the License for the specific language governing permissions and
    15533  * limitations under the License.
     15548},{"./EventConstants":17,"./EventPropagators":22,"./ReactInputSelection":65,"./SyntheticEvent":99,"./getActiveElement":127,"./isTextInputElement":143,"./keyOf":147,"./shallowEqual":155}],94:[function(_dereq_,module,exports){
     15549/**
     15550 * Copyright 2013-2014, Facebook, Inc.
     15551 * All rights reserved.
     15552 *
     15553 * This source code is licensed under the BSD-style license found in the
     15554 * LICENSE file in the root directory of this source tree. An additional grant
     15555 * of patent rights can be found in the PATENTS file in the same directory.
    1553415556 *
    1553515557 * @providesModule ServerReactRootIndex
     
    1555515577module.exports = ServerReactRootIndex;
    1555615578
    15557 },{}],92:[function(_dereq_,module,exports){
    15558 /**
    15559  * Copyright 2013-2014 Facebook, Inc.
    15560  *
    15561  * Licensed under the Apache License, Version 2.0 (the "License");
    15562  * you may not use this file except in compliance with the License.
    15563  * You may obtain a copy of the License at
    15564  *
    15565  * http://www.apache.org/licenses/LICENSE-2.0
    15566  *
    15567  * Unless required by applicable law or agreed to in writing, software
    15568  * distributed under the License is distributed on an "AS IS" BASIS,
    15569  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15570  * See the License for the specific language governing permissions and
    15571  * limitations under the License.
     15579},{}],95:[function(_dereq_,module,exports){
     15580/**
     15581 * Copyright 2013-2014, Facebook, Inc.
     15582 * All rights reserved.
     15583 *
     15584 * This source code is licensed under the BSD-style license found in the
     15585 * LICENSE file in the root directory of this source tree. An additional grant
     15586 * of patent rights can be found in the PATENTS file in the same directory.
    1557215587 *
    1557315588 * @providesModule SimpleEventPlugin
     
    1558915604var SyntheticWheelEvent = _dereq_("./SyntheticWheelEvent");
    1559015605
     15606var getEventCharCode = _dereq_("./getEventCharCode");
     15607
    1559115608var invariant = _dereq_("./invariant");
    1559215609var keyOf = _dereq_("./keyOf");
     15610var warning = _dereq_("./warning");
    1559315611
    1559415612var topLevelTypes = EventConstants.topLevelTypes;
     
    1585715875  /**
    1585815876   * Same as the default implementation, except cancels the event when return
    15859    * value is false.
     15877   * value is false. This behavior will be disabled in a future release.
    1586015878   *
    1586115879   * @param {object} Event to be dispatched.
     
    1586515883  executeDispatch: function(event, listener, domID) {
    1586615884    var returnValue = EventPluginUtils.executeDispatch(event, listener, domID);
     15885
     15886    ("production" !== "development" ? warning(
     15887      typeof returnValue !== 'boolean',
     15888      'Returning `false` from an event handler is deprecated and will be ' +
     15889      'ignored in a future release. Instead, manually call ' +
     15890      'e.stopPropagation() or e.preventDefault(), as appropriate.'
     15891    ) : null);
     15892
    1586715893    if (returnValue === false) {
    1586815894      event.stopPropagation();
     
    1590115927      case topLevelTypes.topKeyPress:
    1590215928        // FireFox creates a keypress event for function keys too. This removes
    15903         // the unwanted keypress events.
    15904         if (nativeEvent.charCode === 0) {
     15929        // the unwanted keypress events. Enter is however both printable and
     15930        // non-printable. One would expect Tab to be as well (but it isn't).
     15931        if (getEventCharCode(nativeEvent) === 0) {
    1590515932          return null;
    1590615933        }
     
    1597616003module.exports = SimpleEventPlugin;
    1597716004
    15978 },{"./EventConstants":16,"./EventPluginUtils":20,"./EventPropagators":21,"./SyntheticClipboardEvent":93,"./SyntheticDragEvent":95,"./SyntheticEvent":96,"./SyntheticFocusEvent":97,"./SyntheticKeyboardEvent":99,"./SyntheticMouseEvent":100,"./SyntheticTouchEvent":101,"./SyntheticUIEvent":102,"./SyntheticWheelEvent":103,"./invariant":134,"./keyOf":141}],93:[function(_dereq_,module,exports){
    15979 /**
    15980  * Copyright 2013-2014 Facebook, Inc.
    15981  *
    15982  * Licensed under the Apache License, Version 2.0 (the "License");
    15983  * you may not use this file except in compliance with the License.
    15984  * You may obtain a copy of the License at
    15985  *
    15986  * http://www.apache.org/licenses/LICENSE-2.0
    15987  *
    15988  * Unless required by applicable law or agreed to in writing, software
    15989  * distributed under the License is distributed on an "AS IS" BASIS,
    15990  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15991  * See the License for the specific language governing permissions and
    15992  * limitations under the License.
     16005},{"./EventConstants":17,"./EventPluginUtils":21,"./EventPropagators":22,"./SyntheticClipboardEvent":96,"./SyntheticDragEvent":98,"./SyntheticEvent":99,"./SyntheticFocusEvent":100,"./SyntheticKeyboardEvent":102,"./SyntheticMouseEvent":103,"./SyntheticTouchEvent":104,"./SyntheticUIEvent":105,"./SyntheticWheelEvent":106,"./getEventCharCode":128,"./invariant":140,"./keyOf":147,"./warning":160}],96:[function(_dereq_,module,exports){
     16006/**
     16007 * Copyright 2013-2014, Facebook, Inc.
     16008 * All rights reserved.
     16009 *
     16010 * This source code is licensed under the BSD-style license found in the
     16011 * LICENSE file in the root directory of this source tree. An additional grant
     16012 * of patent rights can be found in the PATENTS file in the same directory.
    1599316013 *
    1599416014 * @providesModule SyntheticClipboardEvent
     
    1602916049
    1603016050
    16031 },{"./SyntheticEvent":96}],94:[function(_dereq_,module,exports){
    16032 /**
    16033  * Copyright 2013-2014 Facebook, Inc.
    16034  *
    16035  * Licensed under the Apache License, Version 2.0 (the "License");
    16036  * you may not use this file except in compliance with the License.
    16037  * You may obtain a copy of the License at
    16038  *
    16039  * http://www.apache.org/licenses/LICENSE-2.0
    16040  *
    16041  * Unless required by applicable law or agreed to in writing, software
    16042  * distributed under the License is distributed on an "AS IS" BASIS,
    16043  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16044  * See the License for the specific language governing permissions and
    16045  * limitations under the License.
     16051},{"./SyntheticEvent":99}],97:[function(_dereq_,module,exports){
     16052/**
     16053 * Copyright 2013-2014, Facebook, Inc.
     16054 * All rights reserved.
     16055 *
     16056 * This source code is licensed under the BSD-style license found in the
     16057 * LICENSE file in the root directory of this source tree. An additional grant
     16058 * of patent rights can be found in the PATENTS file in the same directory.
    1604616059 *
    1604716060 * @providesModule SyntheticCompositionEvent
     
    1608216095
    1608316096
    16084 },{"./SyntheticEvent":96}],95:[function(_dereq_,module,exports){
    16085 /**
    16086  * Copyright 2013-2014 Facebook, Inc.
    16087  *
    16088  * Licensed under the Apache License, Version 2.0 (the "License");
    16089  * you may not use this file except in compliance with the License.
    16090  * You may obtain a copy of the License at
    16091  *
    16092  * http://www.apache.org/licenses/LICENSE-2.0
    16093  *
    16094  * Unless required by applicable law or agreed to in writing, software
    16095  * distributed under the License is distributed on an "AS IS" BASIS,
    16096  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16097  * See the License for the specific language governing permissions and
    16098  * limitations under the License.
     16097},{"./SyntheticEvent":99}],98:[function(_dereq_,module,exports){
     16098/**
     16099 * Copyright 2013-2014, Facebook, Inc.
     16100 * All rights reserved.
     16101 *
     16102 * This source code is licensed under the BSD-style license found in the
     16103 * LICENSE file in the root directory of this source tree. An additional grant
     16104 * of patent rights can be found in the PATENTS file in the same directory.
    1609916105 *
    1610016106 * @providesModule SyntheticDragEvent
     
    1612816134module.exports = SyntheticDragEvent;
    1612916135
    16130 },{"./SyntheticMouseEvent":100}],96:[function(_dereq_,module,exports){
    16131 /**
    16132  * Copyright 2013-2014 Facebook, Inc.
    16133  *
    16134  * Licensed under the Apache License, Version 2.0 (the "License");
    16135  * you may not use this file except in compliance with the License.
    16136  * You may obtain a copy of the License at
    16137  *
    16138  * http://www.apache.org/licenses/LICENSE-2.0
    16139  *
    16140  * Unless required by applicable law or agreed to in writing, software
    16141  * distributed under the License is distributed on an "AS IS" BASIS,
    16142  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16143  * See the License for the specific language governing permissions and
    16144  * limitations under the License.
     16136},{"./SyntheticMouseEvent":103}],99:[function(_dereq_,module,exports){
     16137/**
     16138 * Copyright 2013-2014, Facebook, Inc.
     16139 * All rights reserved.
     16140 *
     16141 * This source code is licensed under the BSD-style license found in the
     16142 * LICENSE file in the root directory of this source tree. An additional grant
     16143 * of patent rights can be found in the PATENTS file in the same directory.
    1614516144 *
    1614616145 * @providesModule SyntheticEvent
     
    1615216151var PooledClass = _dereq_("./PooledClass");
    1615316152
     16153var assign = _dereq_("./Object.assign");
    1615416154var emptyFunction = _dereq_("./emptyFunction");
    1615516155var getEventTarget = _dereq_("./getEventTarget");
    16156 var merge = _dereq_("./merge");
    16157 var mergeInto = _dereq_("./mergeInto");
    1615816156
    1615916157/**
     
    1622216220}
    1622316221
    16224 mergeInto(SyntheticEvent.prototype, {
     16222assign(SyntheticEvent.prototype, {
    1622516223
    1622616224  preventDefault: function() {
     
    1628016278
    1628116279  var prototype = Object.create(Super.prototype);
    16282   mergeInto(prototype, Class.prototype);
     16280  assign(prototype, Class.prototype);
    1628316281  Class.prototype = prototype;
    1628416282  Class.prototype.constructor = Class;
    1628516283
    16286   Class.Interface = merge(Super.Interface, Interface);
     16284  Class.Interface = assign({}, Super.Interface, Interface);
    1628716285  Class.augmentClass = Super.augmentClass;
    1628816286
     
    1629416292module.exports = SyntheticEvent;
    1629516293
    16296 },{"./PooledClass":28,"./emptyFunction":116,"./getEventTarget":125,"./merge":144,"./mergeInto":146}],97:[function(_dereq_,module,exports){
    16297 /**
    16298  * Copyright 2013-2014 Facebook, Inc.
    16299  *
    16300  * Licensed under the Apache License, Version 2.0 (the "License");
    16301  * you may not use this file except in compliance with the License.
    16302  * You may obtain a copy of the License at
    16303  *
    16304  * http://www.apache.org/licenses/LICENSE-2.0
    16305  *
    16306  * Unless required by applicable law or agreed to in writing, software
    16307  * distributed under the License is distributed on an "AS IS" BASIS,
    16308  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16309  * See the License for the specific language governing permissions and
    16310  * limitations under the License.
     16294},{"./Object.assign":29,"./PooledClass":30,"./emptyFunction":121,"./getEventTarget":131}],100:[function(_dereq_,module,exports){
     16295/**
     16296 * Copyright 2013-2014, Facebook, Inc.
     16297 * All rights reserved.
     16298 *
     16299 * This source code is licensed under the BSD-style license found in the
     16300 * LICENSE file in the root directory of this source tree. An additional grant
     16301 * of patent rights can be found in the PATENTS file in the same directory.
    1631116302 *
    1631216303 * @providesModule SyntheticFocusEvent
     
    1634016331module.exports = SyntheticFocusEvent;
    1634116332
    16342 },{"./SyntheticUIEvent":102}],98:[function(_dereq_,module,exports){
     16333},{"./SyntheticUIEvent":105}],101:[function(_dereq_,module,exports){
    1634316334/**
    1634416335 * Copyright 2013 Facebook, Inc.
    16345  *
    16346  * Licensed under the Apache License, Version 2.0 (the "License");
    16347  * you may not use this file except in compliance with the License.
    16348  * You may obtain a copy of the License at
    16349  *
    16350  * http://www.apache.org/licenses/LICENSE-2.0
    16351  *
    16352  * Unless required by applicable law or agreed to in writing, software
    16353  * distributed under the License is distributed on an "AS IS" BASIS,
    16354  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16355  * See the License for the specific language governing permissions and
    16356  * limitations under the License.
     16336 * All rights reserved.
     16337 *
     16338 * This source code is licensed under the BSD-style license found in the
     16339 * LICENSE file in the root directory of this source tree. An additional grant
     16340 * of patent rights can be found in the PATENTS file in the same directory.
    1635716341 *
    1635816342 * @providesModule SyntheticInputEvent
     
    1639416378
    1639516379
    16396 },{"./SyntheticEvent":96}],99:[function(_dereq_,module,exports){
    16397 /**
    16398  * Copyright 2013-2014 Facebook, Inc.
    16399  *
    16400  * Licensed under the Apache License, Version 2.0 (the "License");
    16401  * you may not use this file except in compliance with the License.
    16402  * You may obtain a copy of the License at
    16403  *
    16404  * http://www.apache.org/licenses/LICENSE-2.0
    16405  *
    16406  * Unless required by applicable law or agreed to in writing, software
    16407  * distributed under the License is distributed on an "AS IS" BASIS,
    16408  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16409  * See the License for the specific language governing permissions and
    16410  * limitations under the License.
     16380},{"./SyntheticEvent":99}],102:[function(_dereq_,module,exports){
     16381/**
     16382 * Copyright 2013-2014, Facebook, Inc.
     16383 * All rights reserved.
     16384 *
     16385 * This source code is licensed under the BSD-style license found in the
     16386 * LICENSE file in the root directory of this source tree. An additional grant
     16387 * of patent rights can be found in the PATENTS file in the same directory.
    1641116388 *
    1641216389 * @providesModule SyntheticKeyboardEvent
     
    1641816395var SyntheticUIEvent = _dereq_("./SyntheticUIEvent");
    1641916396
     16397var getEventCharCode = _dereq_("./getEventCharCode");
    1642016398var getEventKey = _dereq_("./getEventKey");
    1642116399var getEventModifierState = _dereq_("./getEventModifierState");
     
    1644016418    // the actual printable character.
    1644116419
    16442     // KeyPress is deprecated but its replacement is not yet final and not
    16443     // implemented in any major browser.
     16420    // KeyPress is deprecated, but its replacement is not yet final and not
     16421    // implemented in any major browser. Only KeyPress has charCode.
    1644416422    if (event.type === 'keypress') {
    16445       // IE8 does not implement "charCode", but "keyCode" has the correct value.
    16446       return 'charCode' in event ? event.charCode : event.keyCode;
     16423      return getEventCharCode(event);
    1644716424    }
    1644816425    return 0;
     
    1646316440  which: function(event) {
    1646416441    // `which` is an alias for either `keyCode` or `charCode` depending on the
    16465     // type of the event. There is no need to determine the type of the event
    16466     // as `keyCode` and `charCode` are either aliased or default to zero.
    16467     return event.keyCode || event.charCode;
     16442    // type of the event.
     16443    if (event.type === 'keypress') {
     16444      return getEventCharCode(event);
     16445    }
     16446    if (event.type === 'keydown' || event.type === 'keyup') {
     16447      return event.keyCode;
     16448    }
     16449    return 0;
    1646816450  }
    1646916451};
     
    1648316465module.exports = SyntheticKeyboardEvent;
    1648416466
    16485 },{"./SyntheticUIEvent":102,"./getEventKey":123,"./getEventModifierState":124}],100:[function(_dereq_,module,exports){
    16486 /**
    16487  * Copyright 2013-2014 Facebook, Inc.
    16488  *
    16489  * Licensed under the Apache License, Version 2.0 (the "License");
    16490  * you may not use this file except in compliance with the License.
    16491  * You may obtain a copy of the License at
    16492  *
    16493  * http://www.apache.org/licenses/LICENSE-2.0
    16494  *
    16495  * Unless required by applicable law or agreed to in writing, software
    16496  * distributed under the License is distributed on an "AS IS" BASIS,
    16497  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16498  * See the License for the specific language governing permissions and
    16499  * limitations under the License.
     16467},{"./SyntheticUIEvent":105,"./getEventCharCode":128,"./getEventKey":129,"./getEventModifierState":130}],103:[function(_dereq_,module,exports){
     16468/**
     16469 * Copyright 2013-2014, Facebook, Inc.
     16470 * All rights reserved.
     16471 *
     16472 * This source code is licensed under the BSD-style license found in the
     16473 * LICENSE file in the root directory of this source tree. An additional grant
     16474 * of patent rights can be found in the PATENTS file in the same directory.
    1650016475 *
    1650116476 * @providesModule SyntheticMouseEvent
     
    1657316548module.exports = SyntheticMouseEvent;
    1657416549
    16575 },{"./SyntheticUIEvent":102,"./ViewportMetrics":105,"./getEventModifierState":124}],101:[function(_dereq_,module,exports){
    16576 /**
    16577  * Copyright 2013-2014 Facebook, Inc.
    16578  *
    16579  * Licensed under the Apache License, Version 2.0 (the "License");
    16580  * you may not use this file except in compliance with the License.
    16581  * You may obtain a copy of the License at
    16582  *
    16583  * http://www.apache.org/licenses/LICENSE-2.0
    16584  *
    16585  * Unless required by applicable law or agreed to in writing, software
    16586  * distributed under the License is distributed on an "AS IS" BASIS,
    16587  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16588  * See the License for the specific language governing permissions and
    16589  * limitations under the License.
     16550},{"./SyntheticUIEvent":105,"./ViewportMetrics":108,"./getEventModifierState":130}],104:[function(_dereq_,module,exports){
     16551/**
     16552 * Copyright 2013-2014, Facebook, Inc.
     16553 * All rights reserved.
     16554 *
     16555 * This source code is licensed under the BSD-style license found in the
     16556 * LICENSE file in the root directory of this source tree. An additional grant
     16557 * of patent rights can be found in the PATENTS file in the same directory.
    1659016558 *
    1659116559 * @providesModule SyntheticTouchEvent
     
    1662816596module.exports = SyntheticTouchEvent;
    1662916597
    16630 },{"./SyntheticUIEvent":102,"./getEventModifierState":124}],102:[function(_dereq_,module,exports){
    16631 /**
    16632  * Copyright 2013-2014 Facebook, Inc.
    16633  *
    16634  * Licensed under the Apache License, Version 2.0 (the "License");
    16635  * you may not use this file except in compliance with the License.
    16636  * You may obtain a copy of the License at
    16637  *
    16638  * http://www.apache.org/licenses/LICENSE-2.0
    16639  *
    16640  * Unless required by applicable law or agreed to in writing, software
    16641  * distributed under the License is distributed on an "AS IS" BASIS,
    16642  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16643  * See the License for the specific language governing permissions and
    16644  * limitations under the License.
     16598},{"./SyntheticUIEvent":105,"./getEventModifierState":130}],105:[function(_dereq_,module,exports){
     16599/**
     16600 * Copyright 2013-2014, Facebook, Inc.
     16601 * All rights reserved.
     16602 *
     16603 * This source code is licensed under the BSD-style license found in the
     16604 * LICENSE file in the root directory of this source tree. An additional grant
     16605 * of patent rights can be found in the PATENTS file in the same directory.
    1664516606 *
    1664616607 * @providesModule SyntheticUIEvent
     
    1669716658module.exports = SyntheticUIEvent;
    1669816659
    16699 },{"./SyntheticEvent":96,"./getEventTarget":125}],103:[function(_dereq_,module,exports){
    16700 /**
    16701  * Copyright 2013-2014 Facebook, Inc.
    16702  *
    16703  * Licensed under the Apache License, Version 2.0 (the "License");
    16704  * you may not use this file except in compliance with the License.
    16705  * You may obtain a copy of the License at
    16706  *
    16707  * http://www.apache.org/licenses/LICENSE-2.0
    16708  *
    16709  * Unless required by applicable law or agreed to in writing, software
    16710  * distributed under the License is distributed on an "AS IS" BASIS,
    16711  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16712  * See the License for the specific language governing permissions and
    16713  * limitations under the License.
     16660},{"./SyntheticEvent":99,"./getEventTarget":131}],106:[function(_dereq_,module,exports){
     16661/**
     16662 * Copyright 2013-2014, Facebook, Inc.
     16663 * All rights reserved.
     16664 *
     16665 * This source code is licensed under the BSD-style license found in the
     16666 * LICENSE file in the root directory of this source tree. An additional grant
     16667 * of patent rights can be found in the PATENTS file in the same directory.
    1671416668 *
    1671516669 * @providesModule SyntheticWheelEvent
     
    1676516719module.exports = SyntheticWheelEvent;
    1676616720
    16767 },{"./SyntheticMouseEvent":100}],104:[function(_dereq_,module,exports){
    16768 /**
    16769  * Copyright 2013-2014 Facebook, Inc.
    16770  *
    16771  * Licensed under the Apache License, Version 2.0 (the "License");
    16772  * you may not use this file except in compliance with the License.
    16773  * You may obtain a copy of the License at
    16774  *
    16775  * http://www.apache.org/licenses/LICENSE-2.0
    16776  *
    16777  * Unless required by applicable law or agreed to in writing, software
    16778  * distributed under the License is distributed on an "AS IS" BASIS,
    16779  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16780  * See the License for the specific language governing permissions and
    16781  * limitations under the License.
     16721},{"./SyntheticMouseEvent":103}],107:[function(_dereq_,module,exports){
     16722/**
     16723 * Copyright 2013-2014, Facebook, Inc.
     16724 * All rights reserved.
     16725 *
     16726 * This source code is licensed under the BSD-style license found in the
     16727 * LICENSE file in the root directory of this source tree. An additional grant
     16728 * of patent rights can be found in the PATENTS file in the same directory.
    1678216729 *
    1678316730 * @providesModule Transaction
     
    1701116958module.exports = Transaction;
    1701216959
    17013 },{"./invariant":134}],105:[function(_dereq_,module,exports){
    17014 /**
    17015  * Copyright 2013-2014 Facebook, Inc.
    17016  *
    17017  * Licensed under the Apache License, Version 2.0 (the "License");
    17018  * you may not use this file except in compliance with the License.
    17019  * You may obtain a copy of the License at
    17020  *
    17021  * http://www.apache.org/licenses/LICENSE-2.0
    17022  *
    17023  * Unless required by applicable law or agreed to in writing, software
    17024  * distributed under the License is distributed on an "AS IS" BASIS,
    17025  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17026  * See the License for the specific language governing permissions and
    17027  * limitations under the License.
     16960},{"./invariant":140}],108:[function(_dereq_,module,exports){
     16961/**
     16962 * Copyright 2013-2014, Facebook, Inc.
     16963 * All rights reserved.
     16964 *
     16965 * This source code is licensed under the BSD-style license found in the
     16966 * LICENSE file in the root directory of this source tree. An additional grant
     16967 * of patent rights can be found in the PATENTS file in the same directory.
    1702816968 *
    1702916969 * @providesModule ViewportMetrics
     
    1705016990module.exports = ViewportMetrics;
    1705116991
    17052 },{"./getUnboundedScrollPosition":130}],106:[function(_dereq_,module,exports){
    17053 /**
    17054  * Copyright 2013-2014 Facebook, Inc.
    17055  *
    17056  * Licensed under the Apache License, Version 2.0 (the "License");
    17057  * you may not use this file except in compliance with the License.
    17058  * You may obtain a copy of the License at
    17059  *
    17060  * http://www.apache.org/licenses/LICENSE-2.0
    17061  *
    17062  * Unless required by applicable law or agreed to in writing, software
    17063  * distributed under the License is distributed on an "AS IS" BASIS,
    17064  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17065  * See the License for the specific language governing permissions and
    17066  * limitations under the License.
    17067  *
    17068  * @providesModule accumulate
     16992},{"./getUnboundedScrollPosition":136}],109:[function(_dereq_,module,exports){
     16993/**
     16994 * Copyright 2014, Facebook, Inc.
     16995 * All rights reserved.
     16996 *
     16997 * This source code is licensed under the BSD-style license found in the
     16998 * LICENSE file in the root directory of this source tree. An additional grant
     16999 * of patent rights can be found in the PATENTS file in the same directory.
     17000 *
     17001 * @providesModule accumulateInto
    1706917002 */
    1707017003
     
    1707417007
    1707517008/**
    17076  * Accumulates items that must not be null or undefined.
    17077  *
    17078  * This is used to conserve memory by avoiding array allocations.
     17009 *
     17010 * Accumulates items that must not be null or undefined into the first one. This
     17011 * is used to conserve memory by avoiding array allocations, and thus sacrifices
     17012 * API cleanness. Since `current` can be null before being passed in and not
     17013 * null after this function, make sure to assign it back to `current`:
     17014 *
     17015 * `a = accumulateInto(a, b);`
     17016 *
     17017 * This API should be sparingly used. Try `accumulate` for something cleaner.
    1707917018 *
    1708017019 * @return {*|array<*>} An accumulation of items.
    1708117020 */
    17082 function accumulate(current, next) {
     17021
     17022function accumulateInto(current, next) {
    1708317023  ("production" !== "development" ? invariant(
    1708417024    next != null,
    17085     'accumulate(...): Accumulated items must be not be null or undefined.'
     17025    'accumulateInto(...): Accumulated items must not be null or undefined.'
    1708617026  ) : invariant(next != null));
    1708717027  if (current == null) {
    1708817028    return next;
    17089   } else {
    17090     // Both are not empty. Warning: Never call x.concat(y) when you are not
    17091     // certain that x is an Array (x could be a string with concat method).
    17092     var currentIsArray = Array.isArray(current);
    17093     var nextIsArray = Array.isArray(next);
    17094     if (currentIsArray) {
    17095       return current.concat(next);
    17096     } else {
    17097       if (nextIsArray) {
    17098         return [current].concat(next);
    17099       } else {
    17100         return [current, next];
    17101       }
    17102     }
    17103   }
    17104 }
    17105 
    17106 module.exports = accumulate;
    17107 
    17108 },{"./invariant":134}],107:[function(_dereq_,module,exports){
    17109 /**
    17110  * Copyright 2013-2014 Facebook, Inc.
    17111  *
    17112  * Licensed under the Apache License, Version 2.0 (the "License");
    17113  * you may not use this file except in compliance with the License.
    17114  * You may obtain a copy of the License at
    17115  *
    17116  * http://www.apache.org/licenses/LICENSE-2.0
    17117  *
    17118  * Unless required by applicable law or agreed to in writing, software
    17119  * distributed under the License is distributed on an "AS IS" BASIS,
    17120  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17121  * See the License for the specific language governing permissions and
    17122  * limitations under the License.
     17029  }
     17030
     17031  // Both are not empty. Warning: Never call x.concat(y) when you are not
     17032  // certain that x is an Array (x could be a string with concat method).
     17033  var currentIsArray = Array.isArray(current);
     17034  var nextIsArray = Array.isArray(next);
     17035
     17036  if (currentIsArray && nextIsArray) {
     17037    current.push.apply(current, next);
     17038    return current;
     17039  }
     17040
     17041  if (currentIsArray) {
     17042    current.push(next);
     17043    return current;
     17044  }
     17045
     17046  if (nextIsArray) {
     17047    // A bit too dangerous to mutate `next`.
     17048    return [current].concat(next);
     17049  }
     17050
     17051  return [current, next];
     17052}
     17053
     17054module.exports = accumulateInto;
     17055
     17056},{"./invariant":140}],110:[function(_dereq_,module,exports){
     17057/**
     17058 * Copyright 2013-2014, Facebook, Inc.
     17059 * All rights reserved.
     17060 *
     17061 * This source code is licensed under the BSD-style license found in the
     17062 * LICENSE file in the root directory of this source tree. An additional grant
     17063 * of patent rights can be found in the PATENTS file in the same directory.
    1712317064 *
    1712417065 * @providesModule adler32
     
    1713317074// This is a clean-room implementation of adler32 designed for detecting
    1713417075// if markup is not what we expect it to be. It does not need to be
    17135 // cryptographically strong, only reasonable good at detecting if markup
     17076// cryptographically strong, only reasonably good at detecting if markup
    1713617077// generated on the server is different than that on the client.
    1713717078function adler32(data) {
     
    1714717088module.exports = adler32;
    1714817089
    17149 },{}],108:[function(_dereq_,module,exports){
    17150 /**
    17151  * Copyright 2013-2014 Facebook, Inc.
    17152  *
    17153  * Licensed under the Apache License, Version 2.0 (the "License");
    17154  * you may not use this file except in compliance with the License.
    17155  * You may obtain a copy of the License at
    17156  *
    17157  * http://www.apache.org/licenses/LICENSE-2.0
    17158  *
    17159  * Unless required by applicable law or agreed to in writing, software
    17160  * distributed under the License is distributed on an "AS IS" BASIS,
    17161  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17162  * See the License for the specific language governing permissions and
    17163  * limitations under the License.
     17090},{}],111:[function(_dereq_,module,exports){
     17091/**
     17092 * Copyright 2013-2014, Facebook, Inc.
     17093 * All rights reserved.
     17094 *
     17095 * This source code is licensed under the BSD-style license found in the
     17096 * LICENSE file in the root directory of this source tree. An additional grant
     17097 * of patent rights can be found in the PATENTS file in the same directory.
     17098 *
     17099 * @providesModule camelize
     17100 * @typechecks
     17101 */
     17102
     17103var _hyphenPattern = /-(.)/g;
     17104
     17105/**
     17106 * Camelcases a hyphenated string, for example:
     17107 *
     17108 *   > camelize('background-color')
     17109 *   < "backgroundColor"
     17110 *
     17111 * @param {string} string
     17112 * @return {string}
     17113 */
     17114function camelize(string) {
     17115  return string.replace(_hyphenPattern, function(_, character) {
     17116    return character.toUpperCase();
     17117  });
     17118}
     17119
     17120module.exports = camelize;
     17121
     17122},{}],112:[function(_dereq_,module,exports){
     17123/**
     17124 * Copyright 2014, Facebook, Inc.
     17125 * All rights reserved.
     17126 *
     17127 * This source code is licensed under the BSD-style license found in the
     17128 * LICENSE file in the root directory of this source tree. An additional grant
     17129 * of patent rights can be found in the PATENTS file in the same directory.
     17130 *
     17131 * @providesModule camelizeStyleName
     17132 * @typechecks
     17133 */
     17134
     17135"use strict";
     17136
     17137var camelize = _dereq_("./camelize");
     17138
     17139var msPattern = /^-ms-/;
     17140
     17141/**
     17142 * Camelcases a hyphenated CSS property name, for example:
     17143 *
     17144 *   > camelizeStyleName('background-color')
     17145 *   < "backgroundColor"
     17146 *   > camelizeStyleName('-moz-transition')
     17147 *   < "MozTransition"
     17148 *   > camelizeStyleName('-ms-transition')
     17149 *   < "msTransition"
     17150 *
     17151 * As Andi Smith suggests
     17152 * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix
     17153 * is converted to lowercase `ms`.
     17154 *
     17155 * @param {string} string
     17156 * @return {string}
     17157 */
     17158function camelizeStyleName(string) {
     17159  return camelize(string.replace(msPattern, 'ms-'));
     17160}
     17161
     17162module.exports = camelizeStyleName;
     17163
     17164},{"./camelize":111}],113:[function(_dereq_,module,exports){
     17165/**
     17166 * Copyright 2013-2014, Facebook, Inc.
     17167 * All rights reserved.
     17168 *
     17169 * This source code is licensed under the BSD-style license found in the
     17170 * LICENSE file in the root directory of this source tree. An additional grant
     17171 * of patent rights can be found in the PATENTS file in the same directory.
    1716417172 *
    1716517173 * @typechecks
     
    1716917177"use strict";
    1717017178
     17179var ReactElement = _dereq_("./ReactElement");
    1717117180var ReactPropTransferer = _dereq_("./ReactPropTransferer");
    1717217181
     
    1718817197  if ("production" !== "development") {
    1718917198    ("production" !== "development" ? warning(
    17190       !child.props.ref,
     17199      !child.ref,
    1719117200      'You are calling cloneWithProps() on a child with a ref. This is ' +
    1719217201      'dangerous because you\'re creating a new child which will not be ' +
     
    1720417213
    1720517214  // The current API doesn't retain _owner and _context, which is why this
    17206   // doesn't use ReactDescriptor.cloneAndReplaceProps.
    17207   return child.constructor(newProps);
     17215  // doesn't use ReactElement.cloneAndReplaceProps.
     17216  return ReactElement.createElement(child.type, newProps);
    1720817217}
    1720917218
    1721017219module.exports = cloneWithProps;
    1721117220
    17212 },{"./ReactPropTransferer":72,"./keyOf":141,"./warning":158}],109:[function(_dereq_,module,exports){
    17213 /**
    17214  * Copyright 2013-2014 Facebook, Inc.
    17215  *
    17216  * Licensed under the Apache License, Version 2.0 (the "License");
    17217  * you may not use this file except in compliance with the License.
    17218  * You may obtain a copy of the License at
    17219  *
    17220  * http://www.apache.org/licenses/LICENSE-2.0
    17221  *
    17222  * Unless required by applicable law or agreed to in writing, software
    17223  * distributed under the License is distributed on an "AS IS" BASIS,
    17224  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17225  * See the License for the specific language governing permissions and
    17226  * limitations under the License.
     17221},{"./ReactElement":58,"./ReactPropTransferer":76,"./keyOf":147,"./warning":160}],114:[function(_dereq_,module,exports){
     17222/**
     17223 * Copyright 2013-2014, Facebook, Inc.
     17224 * All rights reserved.
     17225 *
     17226 * This source code is licensed under the BSD-style license found in the
     17227 * LICENSE file in the root directory of this source tree. An additional grant
     17228 * of patent rights can be found in the PATENTS file in the same directory.
    1722717229 *
    1722817230 * @providesModule containsNode
     
    1726117263module.exports = containsNode;
    1726217264
    17263 },{"./isTextNode":138}],110:[function(_dereq_,module,exports){
    17264 /**
    17265  * Copyright 2013-2014 Facebook, Inc.
    17266  *
    17267  * Licensed under the Apache License, Version 2.0 (the "License");
    17268  * you may not use this file except in compliance with the License.
    17269  * You may obtain a copy of the License at
    17270  *
    17271  * http://www.apache.org/licenses/LICENSE-2.0
    17272  *
    17273  * Unless required by applicable law or agreed to in writing, software
    17274  * distributed under the License is distributed on an "AS IS" BASIS,
    17275  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17276  * See the License for the specific language governing permissions and
    17277  * limitations under the License.
    17278  *
    17279  * @providesModule copyProperties
    17280  */
    17281 
    17282 /**
    17283  * Copy properties from one or more objects (up to 5) into the first object.
    17284  * This is a shallow copy. It mutates the first object and also returns it.
    17285  *
    17286  * NOTE: `arguments` has a very significant performance penalty, which is why
    17287  * we don't support unlimited arguments.
    17288  */
    17289 function copyProperties(obj, a, b, c, d, e, f) {
    17290   obj = obj || {};
    17291 
    17292   if ("production" !== "development") {
    17293     if (f) {
    17294       throw new Error('Too many arguments passed to copyProperties');
    17295     }
    17296   }
    17297 
    17298   var args = [a, b, c, d, e];
    17299   var ii = 0, v;
    17300   while (args[ii]) {
    17301     v = args[ii++];
    17302     for (var k in v) {
    17303       obj[k] = v[k];
    17304     }
    17305 
    17306     // IE ignores toString in object iteration.. See:
    17307     // webreflection.blogspot.com/2007/07/quick-fix-internet-explorer-and.html
    17308     if (v.hasOwnProperty && v.hasOwnProperty('toString') &&
    17309         (typeof v.toString != 'undefined') && (obj.toString !== v.toString)) {
    17310       obj.toString = v.toString;
    17311     }
    17312   }
    17313 
    17314   return obj;
    17315 }
    17316 
    17317 module.exports = copyProperties;
    17318 
    17319 },{}],111:[function(_dereq_,module,exports){
    17320 /**
    17321  * Copyright 2013-2014 Facebook, Inc.
    17322  *
    17323  * Licensed under the Apache License, Version 2.0 (the "License");
    17324  * you may not use this file except in compliance with the License.
    17325  * You may obtain a copy of the License at
    17326  *
    17327  * http://www.apache.org/licenses/LICENSE-2.0
    17328  *
    17329  * Unless required by applicable law or agreed to in writing, software
    17330  * distributed under the License is distributed on an "AS IS" BASIS,
    17331  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17332  * See the License for the specific language governing permissions and
    17333  * limitations under the License.
     17265},{"./isTextNode":144}],115:[function(_dereq_,module,exports){
     17266/**
     17267 * Copyright 2013-2014, Facebook, Inc.
     17268 * All rights reserved.
     17269 *
     17270 * This source code is licensed under the BSD-style license found in the
     17271 * LICENSE file in the root directory of this source tree. An additional grant
     17272 * of patent rights can be found in the PATENTS file in the same directory.
    1733417273 *
    1733517274 * @providesModule createArrayFrom
     
    1741017349module.exports = createArrayFrom;
    1741117350
    17412 },{"./toArray":155}],112:[function(_dereq_,module,exports){
    17413 /**
    17414  * Copyright 2013-2014 Facebook, Inc.
    17415  *
    17416  * Licensed under the Apache License, Version 2.0 (the "License");
    17417  * you may not use this file except in compliance with the License.
    17418  * You may obtain a copy of the License at
    17419  *
    17420  * http://www.apache.org/licenses/LICENSE-2.0
    17421  *
    17422  * Unless required by applicable law or agreed to in writing, software
    17423  * distributed under the License is distributed on an "AS IS" BASIS,
    17424  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17425  * See the License for the specific language governing permissions and
    17426  * limitations under the License.
     17351},{"./toArray":157}],116:[function(_dereq_,module,exports){
     17352/**
     17353 * Copyright 2013-2014, Facebook, Inc.
     17354 * All rights reserved.
     17355 *
     17356 * This source code is licensed under the BSD-style license found in the
     17357 * LICENSE file in the root directory of this source tree. An additional grant
     17358 * of patent rights can be found in the PATENTS file in the same directory.
    1742717359 *
    1742817360 * @providesModule createFullPageComponent
     
    1743417366// Defeat circular references by requiring this directly.
    1743517367var ReactCompositeComponent = _dereq_("./ReactCompositeComponent");
     17368var ReactElement = _dereq_("./ReactElement");
    1743617369
    1743717370var invariant = _dereq_("./invariant");
     
    1744517378 * management. So we just document it and throw in dangerous cases.
    1744617379 *
    17447  * @param {function} componentClass convenience constructor to wrap
     17380 * @param {string} tag The tag to wrap
    1744817381 * @return {function} convenience constructor of new component
    1744917382 */
    17450 function createFullPageComponent(componentClass) {
     17383function createFullPageComponent(tag) {
     17384  var elementFactory = ReactElement.createFactory(tag);
     17385
    1745117386  var FullPageComponent = ReactCompositeComponent.createClass({
    17452     displayName: 'ReactFullPageComponent' + (
    17453       componentClass.type.displayName || ''
    17454     ),
     17387    displayName: 'ReactFullPageComponent' + tag,
    1745517388
    1745617389    componentWillUnmount: function() {
     
    1746617399
    1746717400    render: function() {
    17468       return this.transferPropsTo(componentClass(null, this.props.children));
     17401      return elementFactory(this.props);
    1746917402    }
    1747017403  });
     
    1747517408module.exports = createFullPageComponent;
    1747617409
    17477 },{"./ReactCompositeComponent":38,"./invariant":134}],113:[function(_dereq_,module,exports){
    17478 /**
    17479  * Copyright 2013-2014 Facebook, Inc.
    17480  *
    17481  * Licensed under the Apache License, Version 2.0 (the "License");
    17482  * you may not use this file except in compliance with the License.
    17483  * You may obtain a copy of the License at
    17484  *
    17485  * http://www.apache.org/licenses/LICENSE-2.0
    17486  *
    17487  * Unless required by applicable law or agreed to in writing, software
    17488  * distributed under the License is distributed on an "AS IS" BASIS,
    17489  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17490  * See the License for the specific language governing permissions and
    17491  * limitations under the License.
     17410},{"./ReactCompositeComponent":40,"./ReactElement":58,"./invariant":140}],117:[function(_dereq_,module,exports){
     17411/**
     17412 * Copyright 2013-2014, Facebook, Inc.
     17413 * All rights reserved.
     17414 *
     17415 * This source code is licensed under the BSD-style license found in the
     17416 * LICENSE file in the root directory of this source tree. An additional grant
     17417 * of patent rights can be found in the PATENTS file in the same directory.
    1749217418 *
    1749317419 * @providesModule createNodesFromMarkup
     
    1757017496module.exports = createNodesFromMarkup;
    1757117497
    17572 },{"./ExecutionEnvironment":22,"./createArrayFrom":111,"./getMarkupWrap":126,"./invariant":134}],114:[function(_dereq_,module,exports){
    17573 /**
    17574  * Copyright 2013-2014 Facebook, Inc.
    17575  *
    17576  * Licensed under the Apache License, Version 2.0 (the "License");
    17577  * you may not use this file except in compliance with the License.
    17578  * You may obtain a copy of the License at
    17579  *
    17580  * http://www.apache.org/licenses/LICENSE-2.0
    17581  *
    17582  * Unless required by applicable law or agreed to in writing, software
    17583  * distributed under the License is distributed on an "AS IS" BASIS,
    17584  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17585  * See the License for the specific language governing permissions and
    17586  * limitations under the License.
     17498},{"./ExecutionEnvironment":23,"./createArrayFrom":115,"./getMarkupWrap":132,"./invariant":140}],118:[function(_dereq_,module,exports){
     17499/**
     17500 * Copyright 2013-2014, Facebook, Inc.
     17501 * All rights reserved.
     17502 *
     17503 * This source code is licensed under the BSD-style license found in the
     17504 * LICENSE file in the root directory of this source tree. An additional grant
     17505 * of patent rights can be found in the PATENTS file in the same directory.
    1758717506 *
    1758817507 * @providesModule cx
     
    1761617535module.exports = cx;
    1761717536
    17618 },{}],115:[function(_dereq_,module,exports){
    17619 /**
    17620  * Copyright 2013-2014 Facebook, Inc.
    17621  *
    17622  * Licensed under the Apache License, Version 2.0 (the "License");
    17623  * you may not use this file except in compliance with the License.
    17624  * You may obtain a copy of the License at
    17625  *
    17626  * http://www.apache.org/licenses/LICENSE-2.0
    17627  *
    17628  * Unless required by applicable law or agreed to in writing, software
    17629  * distributed under the License is distributed on an "AS IS" BASIS,
    17630  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17631  * See the License for the specific language governing permissions and
    17632  * limitations under the License.
     17537},{}],119:[function(_dereq_,module,exports){
     17538/**
     17539 * Copyright 2013-2014, Facebook, Inc.
     17540 * All rights reserved.
     17541 *
     17542 * This source code is licensed under the BSD-style license found in the
     17543 * LICENSE file in the root directory of this source tree. An additional grant
     17544 * of patent rights can be found in the PATENTS file in the same directory.
    1763317545 *
    1763417546 * @providesModule dangerousStyleValue
     
    1768117593module.exports = dangerousStyleValue;
    1768217594
    17683 },{"./CSSProperty":4}],116:[function(_dereq_,module,exports){
    17684 /**
    17685  * Copyright 2013-2014 Facebook, Inc.
    17686  *
    17687  * Licensed under the Apache License, Version 2.0 (the "License");
    17688  * you may not use this file except in compliance with the License.
    17689  * You may obtain a copy of the License at
    17690  *
    17691  * http://www.apache.org/licenses/LICENSE-2.0
    17692  *
    17693  * Unless required by applicable law or agreed to in writing, software
    17694  * distributed under the License is distributed on an "AS IS" BASIS,
    17695  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17696  * See the License for the specific language governing permissions and
    17697  * limitations under the License.
     17595},{"./CSSProperty":5}],120:[function(_dereq_,module,exports){
     17596/**
     17597 * Copyright 2013-2014, Facebook, Inc.
     17598 * All rights reserved.
     17599 *
     17600 * This source code is licensed under the BSD-style license found in the
     17601 * LICENSE file in the root directory of this source tree. An additional grant
     17602 * of patent rights can be found in the PATENTS file in the same directory.
     17603 *
     17604 * @providesModule deprecated
     17605 */
     17606
     17607var assign = _dereq_("./Object.assign");
     17608var warning = _dereq_("./warning");
     17609
     17610/**
     17611 * This will log a single deprecation notice per function and forward the call
     17612 * on to the new API.
     17613 *
     17614 * @param {string} namespace The namespace of the call, eg 'React'
     17615 * @param {string} oldName The old function name, eg 'renderComponent'
     17616 * @param {string} newName The new function name, eg 'render'
     17617 * @param {*} ctx The context this forwarded call should run in
     17618 * @param {function} fn The function to forward on to
     17619 * @return {*} Will be the value as returned from `fn`
     17620 */
     17621function deprecated(namespace, oldName, newName, ctx, fn) {
     17622  var warned = false;
     17623  if ("production" !== "development") {
     17624    var newFn = function() {
     17625      ("production" !== "development" ? warning(
     17626        warned,
     17627        (namespace + "." + oldName + " will be deprecated in a future version. ") +
     17628        ("Use " + namespace + "." + newName + " instead.")
     17629      ) : null);
     17630      warned = true;
     17631      return fn.apply(ctx, arguments);
     17632    };
     17633    newFn.displayName = (namespace + "_" + oldName);
     17634    // We need to make sure all properties of the original fn are copied over.
     17635    // In particular, this is needed to support PropTypes
     17636    return assign(newFn, fn);
     17637  }
     17638
     17639  return fn;
     17640}
     17641
     17642module.exports = deprecated;
     17643
     17644},{"./Object.assign":29,"./warning":160}],121:[function(_dereq_,module,exports){
     17645/**
     17646 * Copyright 2013-2014, Facebook, Inc.
     17647 * All rights reserved.
     17648 *
     17649 * This source code is licensed under the BSD-style license found in the
     17650 * LICENSE file in the root directory of this source tree. An additional grant
     17651 * of patent rights can be found in the PATENTS file in the same directory.
    1769817652 *
    1769917653 * @providesModule emptyFunction
    1770017654 */
    17701 
    17702 var copyProperties = _dereq_("./copyProperties");
    1770317655
    1770417656function makeEmptyFunction(arg) {
     
    1771517667function emptyFunction() {}
    1771617668
    17717 copyProperties(emptyFunction, {
    17718   thatReturns: makeEmptyFunction,
    17719   thatReturnsFalse: makeEmptyFunction(false),
    17720   thatReturnsTrue: makeEmptyFunction(true),
    17721   thatReturnsNull: makeEmptyFunction(null),
    17722   thatReturnsThis: function() { return this; },
    17723   thatReturnsArgument: function(arg) { return arg; }
    17724 });
     17669emptyFunction.thatReturns = makeEmptyFunction;
     17670emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
     17671emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
     17672emptyFunction.thatReturnsNull = makeEmptyFunction(null);
     17673emptyFunction.thatReturnsThis = function() { return this; };
     17674emptyFunction.thatReturnsArgument = function(arg) { return arg; };
    1772517675
    1772617676module.exports = emptyFunction;
    1772717677
    17728 },{"./copyProperties":110}],117:[function(_dereq_,module,exports){
    17729 /**
    17730  * Copyright 2013-2014 Facebook, Inc.
    17731  *
    17732  * Licensed under the Apache License, Version 2.0 (the "License");
    17733  * you may not use this file except in compliance with the License.
    17734  * You may obtain a copy of the License at
    17735  *
    17736  * http://www.apache.org/licenses/LICENSE-2.0
    17737  *
    17738  * Unless required by applicable law or agreed to in writing, software
    17739  * distributed under the License is distributed on an "AS IS" BASIS,
    17740  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17741  * See the License for the specific language governing permissions and
    17742  * limitations under the License.
     17678},{}],122:[function(_dereq_,module,exports){
     17679/**
     17680 * Copyright 2013-2014, Facebook, Inc.
     17681 * All rights reserved.
     17682 *
     17683 * This source code is licensed under the BSD-style license found in the
     17684 * LICENSE file in the root directory of this source tree. An additional grant
     17685 * of patent rights can be found in the PATENTS file in the same directory.
    1774317686 *
    1774417687 * @providesModule emptyObject
     
    1775517698module.exports = emptyObject;
    1775617699
    17757 },{}],118:[function(_dereq_,module,exports){
    17758 /**
    17759  * Copyright 2013-2014 Facebook, Inc.
    17760  *
    17761  * Licensed under the Apache License, Version 2.0 (the "License");
    17762  * you may not use this file except in compliance with the License.
    17763  * You may obtain a copy of the License at
    17764  *
    17765  * http://www.apache.org/licenses/LICENSE-2.0
    17766  *
    17767  * Unless required by applicable law or agreed to in writing, software
    17768  * distributed under the License is distributed on an "AS IS" BASIS,
    17769  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17770  * See the License for the specific language governing permissions and
    17771  * limitations under the License.
     17700},{}],123:[function(_dereq_,module,exports){
     17701/**
     17702 * Copyright 2013-2014, Facebook, Inc.
     17703 * All rights reserved.
     17704 *
     17705 * This source code is licensed under the BSD-style license found in the
     17706 * LICENSE file in the root directory of this source tree. An additional grant
     17707 * of patent rights can be found in the PATENTS file in the same directory.
    1777217708 *
    1777317709 * @providesModule escapeTextForBrowser
     
    1780317739module.exports = escapeTextForBrowser;
    1780417740
    17805 },{}],119:[function(_dereq_,module,exports){
    17806 /**
    17807  * Copyright 2013-2014 Facebook, Inc.
    17808  *
    17809  * Licensed under the Apache License, Version 2.0 (the "License");
    17810  * you may not use this file except in compliance with the License.
    17811  * You may obtain a copy of the License at
    17812  *
    17813  * http://www.apache.org/licenses/LICENSE-2.0
    17814  *
    17815  * Unless required by applicable law or agreed to in writing, software
    17816  * distributed under the License is distributed on an "AS IS" BASIS,
    17817  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17818  * See the License for the specific language governing permissions and
    17819  * limitations under the License.
     17741},{}],124:[function(_dereq_,module,exports){
     17742/**
     17743 * Copyright 2013-2014, Facebook, Inc.
     17744 * All rights reserved.
     17745 *
     17746 * This source code is licensed under the BSD-style license found in the
     17747 * LICENSE file in the root directory of this source tree. An additional grant
     17748 * of patent rights can be found in the PATENTS file in the same directory.
    1782017749 *
    1782117750 * @providesModule flattenChildren
     
    1782317752
    1782417753"use strict";
     17754
     17755var ReactTextComponent = _dereq_("./ReactTextComponent");
    1782517756
    1782617757var traverseAllChildren = _dereq_("./traverseAllChildren");
     
    1784417775  ) : null);
    1784517776  if (keyUnique && child != null) {
    17846     result[name] = child;
     17777    var type = typeof child;
     17778    var normalizedValue;
     17779
     17780    if (type === 'string') {
     17781      normalizedValue = ReactTextComponent(child);
     17782    } else if (type === 'number') {
     17783      normalizedValue = ReactTextComponent('' + child);
     17784    } else {
     17785      normalizedValue = child;
     17786    }
     17787
     17788    result[name] = normalizedValue;
    1784717789  }
    1784817790}
     
    1786417806module.exports = flattenChildren;
    1786517807
    17866 },{"./traverseAllChildren":156,"./warning":158}],120:[function(_dereq_,module,exports){
    17867 /**
    17868  * Copyright 2014 Facebook, Inc.
    17869  *
    17870  * Licensed under the Apache License, Version 2.0 (the "License");
    17871  * you may not use this file except in compliance with the License.
    17872  * You may obtain a copy of the License at
    17873  *
    17874  * http://www.apache.org/licenses/LICENSE-2.0
    17875  *
    17876  * Unless required by applicable law or agreed to in writing, software
    17877  * distributed under the License is distributed on an "AS IS" BASIS,
    17878  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17879  * See the License for the specific language governing permissions and
    17880  * limitations under the License.
     17808},{"./ReactTextComponent":87,"./traverseAllChildren":158,"./warning":160}],125:[function(_dereq_,module,exports){
     17809/**
     17810 * Copyright 2014, Facebook, Inc.
     17811 * All rights reserved.
     17812 *
     17813 * This source code is licensed under the BSD-style license found in the
     17814 * LICENSE file in the root directory of this source tree. An additional grant
     17815 * of patent rights can be found in the PATENTS file in the same directory.
    1788117816 *
    1788217817 * @providesModule focusNode
     
    1788617821
    1788717822/**
    17888  * IE8 throws if an input/textarea is disabled and we try to focus it.
    17889  * Focus only when necessary.
    17890  *
    1789117823 * @param {DOMElement} node input/textarea to focus
    1789217824 */
    1789317825function focusNode(node) {
    17894   if (!node.disabled) {
     17826  // IE8 can throw "Can't move focus to the control because it is invisible,
     17827  // not enabled, or of a type that does not accept the focus." for all kinds of
     17828  // reasons that are too expensive and fragile to test.
     17829  try {
    1789517830    node.focus();
     17831  } catch(e) {
    1789617832  }
    1789717833}
     
    1789917835module.exports = focusNode;
    1790017836
    17901 },{}],121:[function(_dereq_,module,exports){
    17902 /**
    17903  * Copyright 2013-2014 Facebook, Inc.
    17904  *
    17905  * Licensed under the Apache License, Version 2.0 (the "License");
    17906  * you may not use this file except in compliance with the License.
    17907  * You may obtain a copy of the License at
    17908  *
    17909  * http://www.apache.org/licenses/LICENSE-2.0
    17910  *
    17911  * Unless required by applicable law or agreed to in writing, software
    17912  * distributed under the License is distributed on an "AS IS" BASIS,
    17913  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17914  * See the License for the specific language governing permissions and
    17915  * limitations under the License.
     17837},{}],126:[function(_dereq_,module,exports){
     17838/**
     17839 * Copyright 2013-2014, Facebook, Inc.
     17840 * All rights reserved.
     17841 *
     17842 * This source code is licensed under the BSD-style license found in the
     17843 * LICENSE file in the root directory of this source tree. An additional grant
     17844 * of patent rights can be found in the PATENTS file in the same directory.
    1791617845 *
    1791717846 * @providesModule forEachAccumulated
     
    1793717866module.exports = forEachAccumulated;
    1793817867
    17939 },{}],122:[function(_dereq_,module,exports){
    17940 /**
    17941  * Copyright 2013-2014 Facebook, Inc.
    17942  *
    17943  * Licensed under the Apache License, Version 2.0 (the "License");
    17944  * you may not use this file except in compliance with the License.
    17945  * You may obtain a copy of the License at
    17946  *
    17947  * http://www.apache.org/licenses/LICENSE-2.0
    17948  *
    17949  * Unless required by applicable law or agreed to in writing, software
    17950  * distributed under the License is distributed on an "AS IS" BASIS,
    17951  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17952  * See the License for the specific language governing permissions and
    17953  * limitations under the License.
     17868},{}],127:[function(_dereq_,module,exports){
     17869/**
     17870 * Copyright 2013-2014, Facebook, Inc.
     17871 * All rights reserved.
     17872 *
     17873 * This source code is licensed under the BSD-style license found in the
     17874 * LICENSE file in the root directory of this source tree. An additional grant
     17875 * of patent rights can be found in the PATENTS file in the same directory.
    1795417876 *
    1795517877 * @providesModule getActiveElement
     
    1797317895module.exports = getActiveElement;
    1797417896
    17975 },{}],123:[function(_dereq_,module,exports){
    17976 /**
    17977  * Copyright 2013-2014 Facebook, Inc.
    17978  *
    17979  * Licensed under the Apache License, Version 2.0 (the "License");
    17980  * you may not use this file except in compliance with the License.
    17981  * You may obtain a copy of the License at
    17982  *
    17983  * http://www.apache.org/licenses/LICENSE-2.0
    17984  *
    17985  * Unless required by applicable law or agreed to in writing, software
    17986  * distributed under the License is distributed on an "AS IS" BASIS,
    17987  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17988  * See the License for the specific language governing permissions and
    17989  * limitations under the License.
     17897},{}],128:[function(_dereq_,module,exports){
     17898/**
     17899 * Copyright 2013-2014, Facebook, Inc.
     17900 * All rights reserved.
     17901 *
     17902 * This source code is licensed under the BSD-style license found in the
     17903 * LICENSE file in the root directory of this source tree. An additional grant
     17904 * of patent rights can be found in the PATENTS file in the same directory.
     17905 *
     17906 * @providesModule getEventCharCode
     17907 * @typechecks static-only
     17908 */
     17909
     17910"use strict";
     17911
     17912/**
     17913 * `charCode` represents the actual "character code" and is safe to use with
     17914 * `String.fromCharCode`. As such, only keys that correspond to printable
     17915 * characters produce a valid `charCode`, the only exception to this is Enter.
     17916 * The Tab-key is considered non-printable and does not have a `charCode`,
     17917 * presumably because it does not produce a tab-character in browsers.
     17918 *
     17919 * @param {object} nativeEvent Native browser event.
     17920 * @return {string} Normalized `charCode` property.
     17921 */
     17922function getEventCharCode(nativeEvent) {
     17923  var charCode;
     17924  var keyCode = nativeEvent.keyCode;
     17925
     17926  if ('charCode' in nativeEvent) {
     17927    charCode = nativeEvent.charCode;
     17928
     17929    // FF does not set `charCode` for the Enter-key, check against `keyCode`.
     17930    if (charCode === 0 && keyCode === 13) {
     17931      charCode = 13;
     17932    }
     17933  } else {
     17934    // IE8 does not implement `charCode`, but `keyCode` has the correct value.
     17935    charCode = keyCode;
     17936  }
     17937
     17938  // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.
     17939  // Must not discard the (non-)printable Enter-key.
     17940  if (charCode >= 32 || charCode === 13) {
     17941    return charCode;
     17942  }
     17943
     17944  return 0;
     17945}
     17946
     17947module.exports = getEventCharCode;
     17948
     17949},{}],129:[function(_dereq_,module,exports){
     17950/**
     17951 * Copyright 2013-2014, Facebook, Inc.
     17952 * All rights reserved.
     17953 *
     17954 * This source code is licensed under the BSD-style license found in the
     17955 * LICENSE file in the root directory of this source tree. An additional grant
     17956 * of patent rights can be found in the PATENTS file in the same directory.
    1799017957 *
    1799117958 * @providesModule getEventKey
     
    1799517962"use strict";
    1799617963
    17997 var invariant = _dereq_("./invariant");
     17964var getEventCharCode = _dereq_("./getEventCharCode");
    1799817965
    1799917966/**
     
    1801717984
    1801817985/**
    18019  * Translation from legacy `which`/`keyCode` to HTML5 `key`
     17986 * Translation from legacy `keyCode` to HTML5 `key`
    1802017987 * Only special keys supported, all others depend on keyboard layout or browser
    1802117988 * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
     
    1806918036  // Browser does not implement `key`, polyfill as much of it as we can.
    1807018037  if (nativeEvent.type === 'keypress') {
    18071     // Create the character from the `charCode` ourselves and use as an almost
    18072     // perfect replacement.
    18073     var charCode = 'charCode' in nativeEvent ?
    18074       nativeEvent.charCode :
    18075       nativeEvent.keyCode;
     18038    var charCode = getEventCharCode(nativeEvent);
    1807618039
    1807718040    // The enter-key is technically both printable and non-printable and can
     
    1808418047    return translateToKey[nativeEvent.keyCode] || 'Unidentified';
    1808518048  }
    18086 
    18087   ("production" !== "development" ? invariant(false, "Unexpected keyboard event type: %s", nativeEvent.type) : invariant(false));
     18049  return '';
    1808818050}
    1808918051
    1809018052module.exports = getEventKey;
    1809118053
    18092 },{"./invariant":134}],124:[function(_dereq_,module,exports){
     18054},{"./getEventCharCode":128}],130:[function(_dereq_,module,exports){
    1809318055/**
    1809418056 * Copyright 2013 Facebook, Inc.
    18095  *
    18096  * Licensed under the Apache License, Version 2.0 (the "License");
    18097  * you may not use this file except in compliance with the License.
    18098  * You may obtain a copy of the License at
    18099  *
    18100  * http://www.apache.org/licenses/LICENSE-2.0
    18101  *
    18102  * Unless required by applicable law or agreed to in writing, software
    18103  * distributed under the License is distributed on an "AS IS" BASIS,
    18104  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18105  * See the License for the specific language governing permissions and
    18106  * limitations under the License.
     18057 * All rights reserved.
     18058 *
     18059 * This source code is licensed under the BSD-style license found in the
     18060 * LICENSE file in the root directory of this source tree. An additional grant
     18061 * of patent rights can be found in the PATENTS file in the same directory.
    1810718062 *
    1810818063 * @providesModule getEventModifierState
     
    1814418099module.exports = getEventModifierState;
    1814518100
    18146 },{}],125:[function(_dereq_,module,exports){
    18147 /**
    18148  * Copyright 2013-2014 Facebook, Inc.
    18149  *
    18150  * Licensed under the Apache License, Version 2.0 (the "License");
    18151  * you may not use this file except in compliance with the License.
    18152  * You may obtain a copy of the License at
    18153  *
    18154  * http://www.apache.org/licenses/LICENSE-2.0
    18155  *
    18156  * Unless required by applicable law or agreed to in writing, software
    18157  * distributed under the License is distributed on an "AS IS" BASIS,
    18158  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18159  * See the License for the specific language governing permissions and
    18160  * limitations under the License.
     18101},{}],131:[function(_dereq_,module,exports){
     18102/**
     18103 * Copyright 2013-2014, Facebook, Inc.
     18104 * All rights reserved.
     18105 *
     18106 * This source code is licensed under the BSD-style license found in the
     18107 * LICENSE file in the root directory of this source tree. An additional grant
     18108 * of patent rights can be found in the PATENTS file in the same directory.
    1816118109 *
    1816218110 * @providesModule getEventTarget
     
    1818218130module.exports = getEventTarget;
    1818318131
    18184 },{}],126:[function(_dereq_,module,exports){
    18185 /**
    18186  * Copyright 2013-2014 Facebook, Inc.
    18187  *
    18188  * Licensed under the Apache License, Version 2.0 (the "License");
    18189  * you may not use this file except in compliance with the License.
    18190  * You may obtain a copy of the License at
    18191  *
    18192  * http://www.apache.org/licenses/LICENSE-2.0
    18193  *
    18194  * Unless required by applicable law or agreed to in writing, software
    18195  * distributed under the License is distributed on an "AS IS" BASIS,
    18196  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18197  * See the License for the specific language governing permissions and
    18198  * limitations under the License.
     18132},{}],132:[function(_dereq_,module,exports){
     18133/**
     18134 * Copyright 2013-2014, Facebook, Inc.
     18135 * All rights reserved.
     18136 *
     18137 * This source code is licensed under the BSD-style license found in the
     18138 * LICENSE file in the root directory of this source tree. An additional grant
     18139 * of patent rights can be found in the PATENTS file in the same directory.
    1819918140 *
    1820018141 * @providesModule getMarkupWrap
     
    1830418245module.exports = getMarkupWrap;
    1830518246
    18306 },{"./ExecutionEnvironment":22,"./invariant":134}],127:[function(_dereq_,module,exports){
    18307 /**
    18308  * Copyright 2013-2014 Facebook, Inc.
    18309  *
    18310  * Licensed under the Apache License, Version 2.0 (the "License");
    18311  * you may not use this file except in compliance with the License.
    18312  * You may obtain a copy of the License at
    18313  *
    18314  * http://www.apache.org/licenses/LICENSE-2.0
    18315  *
    18316  * Unless required by applicable law or agreed to in writing, software
    18317  * distributed under the License is distributed on an "AS IS" BASIS,
    18318  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18319  * See the License for the specific language governing permissions and
    18320  * limitations under the License.
     18247},{"./ExecutionEnvironment":23,"./invariant":140}],133:[function(_dereq_,module,exports){
     18248/**
     18249 * Copyright 2013-2014, Facebook, Inc.
     18250 * All rights reserved.
     18251 *
     18252 * This source code is licensed under the BSD-style license found in the
     18253 * LICENSE file in the root directory of this source tree. An additional grant
     18254 * of patent rights can be found in the PATENTS file in the same directory.
    1832118255 *
    1832218256 * @providesModule getNodeForCharacterOffset
     
    1838618320module.exports = getNodeForCharacterOffset;
    1838718321
    18388 },{}],128:[function(_dereq_,module,exports){
    18389 /**
    18390  * Copyright 2013-2014 Facebook, Inc.
    18391  *
    18392  * Licensed under the Apache License, Version 2.0 (the "License");
    18393  * you may not use this file except in compliance with the License.
    18394  * You may obtain a copy of the License at
    18395  *
    18396  * http://www.apache.org/licenses/LICENSE-2.0
    18397  *
    18398  * Unless required by applicable law or agreed to in writing, software
    18399  * distributed under the License is distributed on an "AS IS" BASIS,
    18400  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18401  * See the License for the specific language governing permissions and
    18402  * limitations under the License.
     18322},{}],134:[function(_dereq_,module,exports){
     18323/**
     18324 * Copyright 2013-2014, Facebook, Inc.
     18325 * All rights reserved.
     18326 *
     18327 * This source code is licensed under the BSD-style license found in the
     18328 * LICENSE file in the root directory of this source tree. An additional grant
     18329 * of patent rights can be found in the PATENTS file in the same directory.
    1840318330 *
    1840418331 * @providesModule getReactRootElementInContainer
     
    1842818355module.exports = getReactRootElementInContainer;
    1842918356
    18430 },{}],129:[function(_dereq_,module,exports){
    18431 /**
    18432  * Copyright 2013-2014 Facebook, Inc.
    18433  *
    18434  * Licensed under the Apache License, Version 2.0 (the "License");
    18435  * you may not use this file except in compliance with the License.
    18436  * You may obtain a copy of the License at
    18437  *
    18438  * http://www.apache.org/licenses/LICENSE-2.0
    18439  *
    18440  * Unless required by applicable law or agreed to in writing, software
    18441  * distributed under the License is distributed on an "AS IS" BASIS,
    18442  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18443  * See the License for the specific language governing permissions and
    18444  * limitations under the License.
     18357},{}],135:[function(_dereq_,module,exports){
     18358/**
     18359 * Copyright 2013-2014, Facebook, Inc.
     18360 * All rights reserved.
     18361 *
     18362 * This source code is licensed under the BSD-style license found in the
     18363 * LICENSE file in the root directory of this source tree. An additional grant
     18364 * of patent rights can be found in the PATENTS file in the same directory.
    1844518365 *
    1844618366 * @providesModule getTextContentAccessor
     
    1847218392module.exports = getTextContentAccessor;
    1847318393
    18474 },{"./ExecutionEnvironment":22}],130:[function(_dereq_,module,exports){
    18475 /**
    18476  * Copyright 2013-2014 Facebook, Inc.
    18477  *
    18478  * Licensed under the Apache License, Version 2.0 (the "License");
    18479  * you may not use this file except in compliance with the License.
    18480  * You may obtain a copy of the License at
    18481  *
    18482  * http://www.apache.org/licenses/LICENSE-2.0
    18483  *
    18484  * Unless required by applicable law or agreed to in writing, software
    18485  * distributed under the License is distributed on an "AS IS" BASIS,
    18486  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18487  * See the License for the specific language governing permissions and
    18488  * limitations under the License.
     18394},{"./ExecutionEnvironment":23}],136:[function(_dereq_,module,exports){
     18395/**
     18396 * Copyright 2013-2014, Facebook, Inc.
     18397 * All rights reserved.
     18398 *
     18399 * This source code is licensed under the BSD-style license found in the
     18400 * LICENSE file in the root directory of this source tree. An additional grant
     18401 * of patent rights can be found in the PATENTS file in the same directory.
    1848918402 *
    1849018403 * @providesModule getUnboundedScrollPosition
     
    1851918432module.exports = getUnboundedScrollPosition;
    1852018433
    18521 },{}],131:[function(_dereq_,module,exports){
    18522 /**
    18523  * Copyright 2013-2014 Facebook, Inc.
    18524  *
    18525  * Licensed under the Apache License, Version 2.0 (the "License");
    18526  * you may not use this file except in compliance with the License.
    18527  * You may obtain a copy of the License at
    18528  *
    18529  * http://www.apache.org/licenses/LICENSE-2.0
    18530  *
    18531  * Unless required by applicable law or agreed to in writing, software
    18532  * distributed under the License is distributed on an "AS IS" BASIS,
    18533  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18534  * See the License for the specific language governing permissions and
    18535  * limitations under the License.
     18434},{}],137:[function(_dereq_,module,exports){
     18435/**
     18436 * Copyright 2013-2014, Facebook, Inc.
     18437 * All rights reserved.
     18438 *
     18439 * This source code is licensed under the BSD-style license found in the
     18440 * LICENSE file in the root directory of this source tree. An additional grant
     18441 * of patent rights can be found in the PATENTS file in the same directory.
    1853618442 *
    1853718443 * @providesModule hyphenate
     
    1855918465module.exports = hyphenate;
    1856018466
    18561 },{}],132:[function(_dereq_,module,exports){
    18562 /**
    18563  * Copyright 2013-2014 Facebook, Inc.
    18564  *
    18565  * Licensed under the Apache License, Version 2.0 (the "License");
    18566  * you may not use this file except in compliance with the License.
    18567  * You may obtain a copy of the License at
    18568  *
    18569  * http://www.apache.org/licenses/LICENSE-2.0
    18570  *
    18571  * Unless required by applicable law or agreed to in writing, software
    18572  * distributed under the License is distributed on an "AS IS" BASIS,
    18573  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18574  * See the License for the specific language governing permissions and
    18575  * limitations under the License.
     18467},{}],138:[function(_dereq_,module,exports){
     18468/**
     18469 * Copyright 2013-2014, Facebook, Inc.
     18470 * All rights reserved.
     18471 *
     18472 * This source code is licensed under the BSD-style license found in the
     18473 * LICENSE file in the root directory of this source tree. An additional grant
     18474 * of patent rights can be found in the PATENTS file in the same directory.
    1857618475 *
    1857718476 * @providesModule hyphenateStyleName
     
    1858818487 * Hyphenates a camelcased CSS property name, for example:
    1858918488 *
    18590  *   > hyphenate('backgroundColor')
     18489 *   > hyphenateStyleName('backgroundColor')
    1859118490 *   < "background-color"
    18592  *   > hyphenate('MozTransition')
     18491 *   > hyphenateStyleName('MozTransition')
    1859318492 *   < "-moz-transition"
    18594  *   > hyphenate('msTransition')
     18493 *   > hyphenateStyleName('msTransition')
    1859518494 *   < "-ms-transition"
    1859618495 *
     
    1860718506module.exports = hyphenateStyleName;
    1860818507
    18609 },{"./hyphenate":131}],133:[function(_dereq_,module,exports){
    18610 /**
    18611  * Copyright 2013-2014 Facebook, Inc.
    18612  *
    18613  * Licensed under the Apache License, Version 2.0 (the "License");
    18614  * you may not use this file except in compliance with the License.
    18615  * You may obtain a copy of the License at
    18616  *
    18617  * http://www.apache.org/licenses/LICENSE-2.0
    18618  *
    18619  * Unless required by applicable law or agreed to in writing, software
    18620  * distributed under the License is distributed on an "AS IS" BASIS,
    18621  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18622  * See the License for the specific language governing permissions and
    18623  * limitations under the License.
     18508},{"./hyphenate":137}],139:[function(_dereq_,module,exports){
     18509/**
     18510 * Copyright 2013-2014, Facebook, Inc.
     18511 * All rights reserved.
     18512 *
     18513 * This source code is licensed under the BSD-style license found in the
     18514 * LICENSE file in the root directory of this source tree. An additional grant
     18515 * of patent rights can be found in the PATENTS file in the same directory.
    1862418516 *
    1862518517 * @providesModule instantiateReactComponent
     
    1862918521"use strict";
    1863018522
    18631 var invariant = _dereq_("./invariant");
    18632 
    18633 /**
    18634  * Validate a `componentDescriptor`. This should be exposed publicly in a follow
    18635  * up diff.
    18636  *
    18637  * @param {object} descriptor
    18638  * @return {boolean} Returns true if this is a valid descriptor of a Component.
    18639  */
    18640 function isValidComponentDescriptor(descriptor) {
    18641   return (
    18642     descriptor &&
    18643     typeof descriptor.type === 'function' &&
    18644     typeof descriptor.type.prototype.mountComponent === 'function' &&
    18645     typeof descriptor.type.prototype.receiveComponent === 'function'
    18646   );
    18647 }
    18648 
    18649 /**
    18650  * Given a `componentDescriptor` create an instance that will actually be
    18651  * mounted. Currently it just extracts an existing clone from composite
    18652  * components but this is an implementation detail which will change.
    18653  *
    18654  * @param {object} descriptor
    18655  * @return {object} A new instance of componentDescriptor's constructor.
     18523var warning = _dereq_("./warning");
     18524
     18525var ReactElement = _dereq_("./ReactElement");
     18526var ReactLegacyElement = _dereq_("./ReactLegacyElement");
     18527var ReactNativeComponent = _dereq_("./ReactNativeComponent");
     18528var ReactEmptyComponent = _dereq_("./ReactEmptyComponent");
     18529
     18530/**
     18531 * Given an `element` create an instance that will actually be mounted.
     18532 *
     18533 * @param {object} element
     18534 * @param {*} parentCompositeType The composite type that resolved this.
     18535 * @return {object} A new instance of the element's constructor.
    1865618536 * @protected
    1865718537 */
    18658 function instantiateReactComponent(descriptor) {
    18659 
    18660   // TODO: Make warning
    18661   // if (__DEV__) {
    18662     ("production" !== "development" ? invariant(
    18663       isValidComponentDescriptor(descriptor),
    18664       'Only React Components are valid for mounting.'
    18665     ) : invariant(isValidComponentDescriptor(descriptor)));
    18666   // }
    18667 
    18668   return new descriptor.type(descriptor);
     18538function instantiateReactComponent(element, parentCompositeType) {
     18539  var instance;
     18540
     18541  if ("production" !== "development") {
     18542    ("production" !== "development" ? warning(
     18543      element && (typeof element.type === 'function' ||
     18544                     typeof element.type === 'string'),
     18545      'Only functions or strings can be mounted as React components.'
     18546    ) : null);
     18547
     18548    // Resolve mock instances
     18549    if (element.type._mockedReactClassConstructor) {
     18550      // If this is a mocked class, we treat the legacy factory as if it was the
     18551      // class constructor for future proofing unit tests. Because this might
     18552      // be mocked as a legacy factory, we ignore any warnings triggerd by
     18553      // this temporary hack.
     18554      ReactLegacyElement._isLegacyCallWarningEnabled = false;
     18555      try {
     18556        instance = new element.type._mockedReactClassConstructor(
     18557          element.props
     18558        );
     18559      } finally {
     18560        ReactLegacyElement._isLegacyCallWarningEnabled = true;
     18561      }
     18562
     18563      // If the mock implementation was a legacy factory, then it returns a
     18564      // element. We need to turn this into a real component instance.
     18565      if (ReactElement.isValidElement(instance)) {
     18566        instance = new instance.type(instance.props);
     18567      }
     18568
     18569      var render = instance.render;
     18570      if (!render) {
     18571        // For auto-mocked factories, the prototype isn't shimmed and therefore
     18572        // there is no render function on the instance. We replace the whole
     18573        // component with an empty component instance instead.
     18574        element = ReactEmptyComponent.getEmptyComponent();
     18575      } else {
     18576        if (render._isMockFunction && !render._getMockImplementation()) {
     18577          // Auto-mocked components may have a prototype with a mocked render
     18578          // function. For those, we'll need to mock the result of the render
     18579          // since we consider undefined to be invalid results from render.
     18580          render.mockImplementation(
     18581            ReactEmptyComponent.getEmptyComponent
     18582          );
     18583        }
     18584        instance.construct(element);
     18585        return instance;
     18586      }
     18587    }
     18588  }
     18589
     18590  // Special case string values
     18591  if (typeof element.type === 'string') {
     18592    instance = ReactNativeComponent.createInstanceForTag(
     18593      element.type,
     18594      element.props,
     18595      parentCompositeType
     18596    );
     18597  } else {
     18598    // Normal case for non-mocks and non-strings
     18599    instance = new element.type(element.props);
     18600  }
     18601
     18602  if ("production" !== "development") {
     18603    ("production" !== "development" ? warning(
     18604      typeof instance.construct === 'function' &&
     18605      typeof instance.mountComponent === 'function' &&
     18606      typeof instance.receiveComponent === 'function',
     18607      'Only React Components can be mounted.'
     18608    ) : null);
     18609  }
     18610
     18611  // This actually sets up the internal instance. This will become decoupled
     18612  // from the public instance in a future diff.
     18613  instance.construct(element);
     18614
     18615  return instance;
    1866918616}
    1867018617
    1867118618module.exports = instantiateReactComponent;
    1867218619
    18673 },{"./invariant":134}],134:[function(_dereq_,module,exports){
    18674 /**
    18675  * Copyright 2013-2014 Facebook, Inc.
    18676  *
    18677  * Licensed under the Apache License, Version 2.0 (the "License");
    18678  * you may not use this file except in compliance with the License.
    18679  * You may obtain a copy of the License at
    18680  *
    18681  * http://www.apache.org/licenses/LICENSE-2.0
    18682  *
    18683  * Unless required by applicable law or agreed to in writing, software
    18684  * distributed under the License is distributed on an "AS IS" BASIS,
    18685  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18686  * See the License for the specific language governing permissions and
    18687  * limitations under the License.
     18620},{"./ReactElement":58,"./ReactEmptyComponent":60,"./ReactLegacyElement":67,"./ReactNativeComponent":73,"./warning":160}],140:[function(_dereq_,module,exports){
     18621/**
     18622 * Copyright 2013-2014, Facebook, Inc.
     18623 * All rights reserved.
     18624 *
     18625 * This source code is licensed under the BSD-style license found in the
     18626 * LICENSE file in the root directory of this source tree. An additional grant
     18627 * of patent rights can be found in the PATENTS file in the same directory.
    1868818628 *
    1868918629 * @providesModule invariant
     
    1873318673module.exports = invariant;
    1873418674
    18735 },{}],135:[function(_dereq_,module,exports){
    18736 /**
    18737  * Copyright 2013-2014 Facebook, Inc.
    18738  *
    18739  * Licensed under the Apache License, Version 2.0 (the "License");
    18740  * you may not use this file except in compliance with the License.
    18741  * You may obtain a copy of the License at
    18742  *
    18743  * http://www.apache.org/licenses/LICENSE-2.0
    18744  *
    18745  * Unless required by applicable law or agreed to in writing, software
    18746  * distributed under the License is distributed on an "AS IS" BASIS,
    18747  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18748  * See the License for the specific language governing permissions and
    18749  * limitations under the License.
     18675},{}],141:[function(_dereq_,module,exports){
     18676/**
     18677 * Copyright 2013-2014, Facebook, Inc.
     18678 * All rights reserved.
     18679 *
     18680 * This source code is licensed under the BSD-style license found in the
     18681 * LICENSE file in the root directory of this source tree. An additional grant
     18682 * of patent rights can be found in the PATENTS file in the same directory.
    1875018683 *
    1875118684 * @providesModule isEventSupported
     
    1880518738module.exports = isEventSupported;
    1880618739
    18807 },{"./ExecutionEnvironment":22}],136:[function(_dereq_,module,exports){
    18808 /**
    18809  * Copyright 2013-2014 Facebook, Inc.
    18810  *
    18811  * Licensed under the Apache License, Version 2.0 (the "License");
    18812  * you may not use this file except in compliance with the License.
    18813  * You may obtain a copy of the License at
    18814  *
    18815  * http://www.apache.org/licenses/LICENSE-2.0
    18816  *
    18817  * Unless required by applicable law or agreed to in writing, software
    18818  * distributed under the License is distributed on an "AS IS" BASIS,
    18819  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18820  * See the License for the specific language governing permissions and
    18821  * limitations under the License.
     18740},{"./ExecutionEnvironment":23}],142:[function(_dereq_,module,exports){
     18741/**
     18742 * Copyright 2013-2014, Facebook, Inc.
     18743 * All rights reserved.
     18744 *
     18745 * This source code is licensed under the BSD-style license found in the
     18746 * LICENSE file in the root directory of this source tree. An additional grant
     18747 * of patent rights can be found in the PATENTS file in the same directory.
    1882218748 *
    1882318749 * @providesModule isNode
     
    1884018766module.exports = isNode;
    1884118767
    18842 },{}],137:[function(_dereq_,module,exports){
    18843 /**
    18844  * Copyright 2013-2014 Facebook, Inc.
    18845  *
    18846  * Licensed under the Apache License, Version 2.0 (the "License");
    18847  * you may not use this file except in compliance with the License.
    18848  * You may obtain a copy of the License at
    18849  *
    18850  * http://www.apache.org/licenses/LICENSE-2.0
    18851  *
    18852  * Unless required by applicable law or agreed to in writing, software
    18853  * distributed under the License is distributed on an "AS IS" BASIS,
    18854  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18855  * See the License for the specific language governing permissions and
    18856  * limitations under the License.
     18768},{}],143:[function(_dereq_,module,exports){
     18769/**
     18770 * Copyright 2013-2014, Facebook, Inc.
     18771 * All rights reserved.
     18772 *
     18773 * This source code is licensed under the BSD-style license found in the
     18774 * LICENSE file in the root directory of this source tree. An additional grant
     18775 * of patent rights can be found in the PATENTS file in the same directory.
    1885718776 *
    1885818777 * @providesModule isTextInputElement
     
    1889118810module.exports = isTextInputElement;
    1889218811
    18893 },{}],138:[function(_dereq_,module,exports){
    18894 /**
    18895  * Copyright 2013-2014 Facebook, Inc.
    18896  *
    18897  * Licensed under the Apache License, Version 2.0 (the "License");
    18898  * you may not use this file except in compliance with the License.
    18899  * You may obtain a copy of the License at
    18900  *
    18901  * http://www.apache.org/licenses/LICENSE-2.0
    18902  *
    18903  * Unless required by applicable law or agreed to in writing, software
    18904  * distributed under the License is distributed on an "AS IS" BASIS,
    18905  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18906  * See the License for the specific language governing permissions and
    18907  * limitations under the License.
     18812},{}],144:[function(_dereq_,module,exports){
     18813/**
     18814 * Copyright 2013-2014, Facebook, Inc.
     18815 * All rights reserved.
     18816 *
     18817 * This source code is licensed under the BSD-style license found in the
     18818 * LICENSE file in the root directory of this source tree. An additional grant
     18819 * of patent rights can be found in the PATENTS file in the same directory.
    1890818820 *
    1890918821 * @providesModule isTextNode
     
    1892318835module.exports = isTextNode;
    1892418836
    18925 },{"./isNode":136}],139:[function(_dereq_,module,exports){
    18926 /**
    18927  * Copyright 2013-2014 Facebook, Inc.
    18928  *
    18929  * Licensed under the Apache License, Version 2.0 (the "License");
    18930  * you may not use this file except in compliance with the License.
    18931  * You may obtain a copy of the License at
    18932  *
    18933  * http://www.apache.org/licenses/LICENSE-2.0
    18934  *
    18935  * Unless required by applicable law or agreed to in writing, software
    18936  * distributed under the License is distributed on an "AS IS" BASIS,
    18937  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18938  * See the License for the specific language governing permissions and
    18939  * limitations under the License.
     18837},{"./isNode":142}],145:[function(_dereq_,module,exports){
     18838/**
     18839 * Copyright 2013-2014, Facebook, Inc.
     18840 * All rights reserved.
     18841 *
     18842 * This source code is licensed under the BSD-style license found in the
     18843 * LICENSE file in the root directory of this source tree. An additional grant
     18844 * of patent rights can be found in the PATENTS file in the same directory.
    1894018845 *
    1894118846 * @providesModule joinClasses
     
    1896118866    for (var ii = 1; ii < argLength; ii++) {
    1896218867      nextClass = arguments[ii];
    18963       nextClass && (className += ' ' + nextClass);
     18868      if (nextClass) {
     18869        className = (className ? className + ' ' : '') + nextClass;
     18870      }
    1896418871    }
    1896518872  }
     
    1896918876module.exports = joinClasses;
    1897018877
    18971 },{}],140:[function(_dereq_,module,exports){
    18972 /**
    18973  * Copyright 2013-2014 Facebook, Inc.
    18974  *
    18975  * Licensed under the Apache License, Version 2.0 (the "License");
    18976  * you may not use this file except in compliance with the License.
    18977  * You may obtain a copy of the License at
    18978  *
    18979  * http://www.apache.org/licenses/LICENSE-2.0
    18980  *
    18981  * Unless required by applicable law or agreed to in writing, software
    18982  * distributed under the License is distributed on an "AS IS" BASIS,
    18983  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    18984  * See the License for the specific language governing permissions and
    18985  * limitations under the License.
     18878},{}],146:[function(_dereq_,module,exports){
     18879/**
     18880 * Copyright 2013-2014, Facebook, Inc.
     18881 * All rights reserved.
     18882 *
     18883 * This source code is licensed under the BSD-style license found in the
     18884 * LICENSE file in the root directory of this source tree. An additional grant
     18885 * of patent rights can be found in the PATENTS file in the same directory.
    1898618886 *
    1898718887 * @providesModule keyMirror
     
    1902918929module.exports = keyMirror;
    1903018930
    19031 },{"./invariant":134}],141:[function(_dereq_,module,exports){
    19032 /**
    19033  * Copyright 2013-2014 Facebook, Inc.
    19034  *
    19035  * Licensed under the Apache License, Version 2.0 (the "License");
    19036  * you may not use this file except in compliance with the License.
    19037  * You may obtain a copy of the License at
    19038  *
    19039  * http://www.apache.org/licenses/LICENSE-2.0
    19040  *
    19041  * Unless required by applicable law or agreed to in writing, software
    19042  * distributed under the License is distributed on an "AS IS" BASIS,
    19043  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19044  * See the License for the specific language governing permissions and
    19045  * limitations under the License.
     18931},{"./invariant":140}],147:[function(_dereq_,module,exports){
     18932/**
     18933 * Copyright 2013-2014, Facebook, Inc.
     18934 * All rights reserved.
     18935 *
     18936 * This source code is licensed under the BSD-style license found in the
     18937 * LICENSE file in the root directory of this source tree. An additional grant
     18938 * of patent rights can be found in the PATENTS file in the same directory.
    1904618939 *
    1904718940 * @providesModule keyOf
     
    1907218965module.exports = keyOf;
    1907318966
    19074 },{}],142:[function(_dereq_,module,exports){
    19075 /**
    19076  * Copyright 2013-2014 Facebook, Inc.
    19077  *
    19078  * Licensed under the Apache License, Version 2.0 (the "License");
    19079  * you may not use this file except in compliance with the License.
    19080  * You may obtain a copy of the License at
    19081  *
    19082  * http://www.apache.org/licenses/LICENSE-2.0
    19083  *
    19084  * Unless required by applicable law or agreed to in writing, software
    19085  * distributed under the License is distributed on an "AS IS" BASIS,
    19086  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19087  * See the License for the specific language governing permissions and
    19088  * limitations under the License.
     18967},{}],148:[function(_dereq_,module,exports){
     18968/**
     18969 * Copyright 2013-2014, Facebook, Inc.
     18970 * All rights reserved.
     18971 *
     18972 * This source code is licensed under the BSD-style license found in the
     18973 * LICENSE file in the root directory of this source tree. An additional grant
     18974 * of patent rights can be found in the PATENTS file in the same directory.
    1908918975 *
    1909018976 * @providesModule mapObject
    1909118977 */
    1909218978
    19093 "use strict";
    19094 
    19095 /**
    19096  * For each key/value pair, invokes callback func and constructs a resulting
    19097  * object which contains, for every key in obj, values that are the result of
    19098  * of invoking the function:
    19099  *
    19100  *   func(value, key, iteration)
    19101  *
    19102  * Grepable names:
    19103  *
    19104  *   function objectMap()
    19105  *   function objMap()
    19106  *
    19107  * @param {?object} obj Object to map keys over
    19108  * @param {function} func Invoked for each key/val pair.
    19109  * @param {?*} context
    19110  * @return {?object} Result of mapping or null if obj is falsey
    19111  */
    19112 function mapObject(obj, func, context) {
    19113   if (!obj) {
     18979'use strict';
     18980
     18981var hasOwnProperty = Object.prototype.hasOwnProperty;
     18982
     18983/**
     18984 * Executes the provided `callback` once for each enumerable own property in the
     18985 * object and constructs a new object from the results. The `callback` is
     18986 * invoked with three arguments:
     18987 *
     18988 *  - the property value
     18989 *  - the property name
     18990 *  - the object being traversed
     18991 *
     18992 * Properties that are added after the call to `mapObject` will not be visited
     18993 * by `callback`. If the values of existing properties are changed, the value
     18994 * passed to `callback` will be the value at the time `mapObject` visits them.
     18995 * Properties that are deleted before being visited are not visited.
     18996 *
     18997 * @grep function objectMap()
     18998 * @grep function objMap()
     18999 *
     19000 * @param {?object} object
     19001 * @param {function} callback
     19002 * @param {*} context
     19003 * @return {?object}
     19004 */
     19005function mapObject(object, callback, context) {
     19006  if (!object) {
    1911419007    return null;
    1911519008  }
    19116   var i = 0;
    19117   var ret = {};
    19118   for (var key in obj) {
    19119     if (obj.hasOwnProperty(key)) {
    19120       ret[key] = func.call(context, obj[key], key, i++);
    19121     }
    19122   }
    19123   return ret;
     19009  var result = {};
     19010  for (var name in object) {
     19011    if (hasOwnProperty.call(object, name)) {
     19012      result[name] = callback.call(context, object[name], name, object);
     19013    }
     19014  }
     19015  return result;
    1912419016}
    1912519017
    1912619018module.exports = mapObject;
    1912719019
    19128 },{}],143:[function(_dereq_,module,exports){
    19129 /**
    19130  * Copyright 2013-2014 Facebook, Inc.
    19131  *
    19132  * Licensed under the Apache License, Version 2.0 (the "License");
    19133  * you may not use this file except in compliance with the License.
    19134  * You may obtain a copy of the License at
    19135  *
    19136  * http://www.apache.org/licenses/LICENSE-2.0
    19137  *
    19138  * Unless required by applicable law or agreed to in writing, software
    19139  * distributed under the License is distributed on an "AS IS" BASIS,
    19140  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19141  * See the License for the specific language governing permissions and
    19142  * limitations under the License.
     19020},{}],149:[function(_dereq_,module,exports){
     19021/**
     19022 * Copyright 2013-2014, Facebook, Inc.
     19023 * All rights reserved.
     19024 *
     19025 * This source code is licensed under the BSD-style license found in the
     19026 * LICENSE file in the root directory of this source tree. An additional grant
     19027 * of patent rights can be found in the PATENTS file in the same directory.
    1914319028 *
    1914419029 * @providesModule memoizeStringOnly
     
    1916719052module.exports = memoizeStringOnly;
    1916819053
    19169 },{}],144:[function(_dereq_,module,exports){
    19170 /**
    19171  * Copyright 2013-2014 Facebook, Inc.
    19172  *
    19173  * Licensed under the Apache License, Version 2.0 (the "License");
    19174  * you may not use this file except in compliance with the License.
    19175  * You may obtain a copy of the License at
    19176  *
    19177  * http://www.apache.org/licenses/LICENSE-2.0
    19178  *
    19179  * Unless required by applicable law or agreed to in writing, software
    19180  * distributed under the License is distributed on an "AS IS" BASIS,
    19181  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19182  * See the License for the specific language governing permissions and
    19183  * limitations under the License.
    19184  *
    19185  * @providesModule merge
    19186  */
    19187 
    19188 "use strict";
    19189 
    19190 var mergeInto = _dereq_("./mergeInto");
    19191 
    19192 /**
    19193  * Shallow merges two structures into a return value, without mutating either.
    19194  *
    19195  * @param {?object} one Optional object with properties to merge from.
    19196  * @param {?object} two Optional object with properties to merge from.
    19197  * @return {object} The shallow extension of one by two.
    19198  */
    19199 var merge = function(one, two) {
    19200   var result = {};
    19201   mergeInto(result, one);
    19202   mergeInto(result, two);
    19203   return result;
    19204 };
    19205 
    19206 module.exports = merge;
    19207 
    19208 },{"./mergeInto":146}],145:[function(_dereq_,module,exports){
    19209 /**
    19210  * Copyright 2013-2014 Facebook, Inc.
    19211  *
    19212  * Licensed under the Apache License, Version 2.0 (the "License");
    19213  * you may not use this file except in compliance with the License.
    19214  * You may obtain a copy of the License at
    19215  *
    19216  * http://www.apache.org/licenses/LICENSE-2.0
    19217  *
    19218  * Unless required by applicable law or agreed to in writing, software
    19219  * distributed under the License is distributed on an "AS IS" BASIS,
    19220  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19221  * See the License for the specific language governing permissions and
    19222  * limitations under the License.
    19223  *
    19224  * @providesModule mergeHelpers
    19225  *
    19226  * requiresPolyfills: Array.isArray
    19227  */
    19228 
    19229 "use strict";
    19230 
    19231 var invariant = _dereq_("./invariant");
    19232 var keyMirror = _dereq_("./keyMirror");
    19233 
    19234 /**
    19235  * Maximum number of levels to traverse. Will catch circular structures.
    19236  * @const
    19237  */
    19238 var MAX_MERGE_DEPTH = 36;
    19239 
    19240 /**
    19241  * We won't worry about edge cases like new String('x') or new Boolean(true).
    19242  * Functions are considered terminals, and arrays are not.
    19243  * @param {*} o The item/object/value to test.
    19244  * @return {boolean} true iff the argument is a terminal.
    19245  */
    19246 var isTerminal = function(o) {
    19247   return typeof o !== 'object' || o === null;
    19248 };
    19249 
    19250 var mergeHelpers = {
    19251 
    19252   MAX_MERGE_DEPTH: MAX_MERGE_DEPTH,
    19253 
    19254   isTerminal: isTerminal,
    19255 
    19256   /**
    19257    * Converts null/undefined values into empty object.
    19258    *
    19259    * @param {?Object=} arg Argument to be normalized (nullable optional)
    19260    * @return {!Object}
    19261    */
    19262   normalizeMergeArg: function(arg) {
    19263     return arg === undefined || arg === null ? {} : arg;
    19264   },
    19265 
    19266   /**
    19267    * If merging Arrays, a merge strategy *must* be supplied. If not, it is
    19268    * likely the caller's fault. If this function is ever called with anything
    19269    * but `one` and `two` being `Array`s, it is the fault of the merge utilities.
    19270    *
    19271    * @param {*} one Array to merge into.
    19272    * @param {*} two Array to merge from.
    19273    */
    19274   checkMergeArrayArgs: function(one, two) {
    19275     ("production" !== "development" ? invariant(
    19276       Array.isArray(one) && Array.isArray(two),
    19277       'Tried to merge arrays, instead got %s and %s.',
    19278       one,
    19279       two
    19280     ) : invariant(Array.isArray(one) && Array.isArray(two)));
    19281   },
    19282 
    19283   /**
    19284    * @param {*} one Object to merge into.
    19285    * @param {*} two Object to merge from.
    19286    */
    19287   checkMergeObjectArgs: function(one, two) {
    19288     mergeHelpers.checkMergeObjectArg(one);
    19289     mergeHelpers.checkMergeObjectArg(two);
    19290   },
    19291 
    19292   /**
    19293    * @param {*} arg
    19294    */
    19295   checkMergeObjectArg: function(arg) {
    19296     ("production" !== "development" ? invariant(
    19297       !isTerminal(arg) && !Array.isArray(arg),
    19298       'Tried to merge an object, instead got %s.',
    19299       arg
    19300     ) : invariant(!isTerminal(arg) && !Array.isArray(arg)));
    19301   },
    19302 
    19303   /**
    19304    * @param {*} arg
    19305    */
    19306   checkMergeIntoObjectArg: function(arg) {
    19307     ("production" !== "development" ? invariant(
    19308       (!isTerminal(arg) || typeof arg === 'function') && !Array.isArray(arg),
    19309       'Tried to merge into an object, instead got %s.',
    19310       arg
    19311     ) : invariant((!isTerminal(arg) || typeof arg === 'function') && !Array.isArray(arg)));
    19312   },
    19313 
    19314   /**
    19315    * Checks that a merge was not given a circular object or an object that had
    19316    * too great of depth.
    19317    *
    19318    * @param {number} Level of recursion to validate against maximum.
    19319    */
    19320   checkMergeLevel: function(level) {
    19321     ("production" !== "development" ? invariant(
    19322       level < MAX_MERGE_DEPTH,
    19323       'Maximum deep merge depth exceeded. You may be attempting to merge ' +
    19324       'circular structures in an unsupported way.'
    19325     ) : invariant(level < MAX_MERGE_DEPTH));
    19326   },
    19327 
    19328   /**
    19329    * Checks that the supplied merge strategy is valid.
    19330    *
    19331    * @param {string} Array merge strategy.
    19332    */
    19333   checkArrayStrategy: function(strategy) {
    19334     ("production" !== "development" ? invariant(
    19335       strategy === undefined || strategy in mergeHelpers.ArrayStrategies,
    19336       'You must provide an array strategy to deep merge functions to ' +
    19337       'instruct the deep merge how to resolve merging two arrays.'
    19338     ) : invariant(strategy === undefined || strategy in mergeHelpers.ArrayStrategies));
    19339   },
    19340 
    19341   /**
    19342    * Set of possible behaviors of merge algorithms when encountering two Arrays
    19343    * that must be merged together.
    19344    * - `clobber`: The left `Array` is ignored.
    19345    * - `indexByIndex`: The result is achieved by recursively deep merging at
    19346    *   each index. (not yet supported.)
    19347    */
    19348   ArrayStrategies: keyMirror({
    19349     Clobber: true,
    19350     IndexByIndex: true
    19351   })
    19352 
    19353 };
    19354 
    19355 module.exports = mergeHelpers;
    19356 
    19357 },{"./invariant":134,"./keyMirror":140}],146:[function(_dereq_,module,exports){
    19358 /**
    19359  * Copyright 2013-2014 Facebook, Inc.
    19360  *
    19361  * Licensed under the Apache License, Version 2.0 (the "License");
    19362  * you may not use this file except in compliance with the License.
    19363  * You may obtain a copy of the License at
    19364  *
    19365  * http://www.apache.org/licenses/LICENSE-2.0
    19366  *
    19367  * Unless required by applicable law or agreed to in writing, software
    19368  * distributed under the License is distributed on an "AS IS" BASIS,
    19369  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19370  * See the License for the specific language governing permissions and
    19371  * limitations under the License.
    19372  *
    19373  * @providesModule mergeInto
    19374  * @typechecks static-only
    19375  */
    19376 
    19377 "use strict";
    19378 
    19379 var mergeHelpers = _dereq_("./mergeHelpers");
    19380 
    19381 var checkMergeObjectArg = mergeHelpers.checkMergeObjectArg;
    19382 var checkMergeIntoObjectArg = mergeHelpers.checkMergeIntoObjectArg;
    19383 
    19384 /**
    19385  * Shallow merges two structures by mutating the first parameter.
    19386  *
    19387  * @param {object|function} one Object to be merged into.
    19388  * @param {?object} two Optional object with properties to merge from.
    19389  */
    19390 function mergeInto(one, two) {
    19391   checkMergeIntoObjectArg(one);
    19392   if (two != null) {
    19393     checkMergeObjectArg(two);
    19394     for (var key in two) {
    19395       if (!two.hasOwnProperty(key)) {
    19396         continue;
    19397       }
    19398       one[key] = two[key];
    19399     }
    19400   }
    19401 }
    19402 
    19403 module.exports = mergeInto;
    19404 
    19405 },{"./mergeHelpers":145}],147:[function(_dereq_,module,exports){
    19406 /**
    19407  * Copyright 2013-2014 Facebook, Inc.
    19408  *
    19409  * Licensed under the Apache License, Version 2.0 (the "License");
    19410  * you may not use this file except in compliance with the License.
    19411  * You may obtain a copy of the License at
    19412  *
    19413  * http://www.apache.org/licenses/LICENSE-2.0
    19414  *
    19415  * Unless required by applicable law or agreed to in writing, software
    19416  * distributed under the License is distributed on an "AS IS" BASIS,
    19417  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19418  * See the License for the specific language governing permissions and
    19419  * limitations under the License.
    19420  *
    19421  * @providesModule mixInto
    19422  */
    19423 
    19424 "use strict";
    19425 
    19426 /**
    19427  * Simply copies properties to the prototype.
    19428  */
    19429 var mixInto = function(constructor, methodBag) {
    19430   var methodName;
    19431   for (methodName in methodBag) {
    19432     if (!methodBag.hasOwnProperty(methodName)) {
    19433       continue;
    19434     }
    19435     constructor.prototype[methodName] = methodBag[methodName];
    19436   }
    19437 };
    19438 
    19439 module.exports = mixInto;
    19440 
    19441 },{}],148:[function(_dereq_,module,exports){
    19442 /**
    19443  * Copyright 2014 Facebook, Inc.
    19444  *
    19445  * Licensed under the Apache License, Version 2.0 (the "License");
    19446  * you may not use this file except in compliance with the License.
    19447  * You may obtain a copy of the License at
    19448  *
    19449  * http://www.apache.org/licenses/LICENSE-2.0
    19450  *
    19451  * Unless required by applicable law or agreed to in writing, software
    19452  * distributed under the License is distributed on an "AS IS" BASIS,
    19453  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19454  * See the License for the specific language governing permissions and
    19455  * limitations under the License.
     19054},{}],150:[function(_dereq_,module,exports){
     19055/**
     19056 * Copyright 2014, Facebook, Inc.
     19057 * All rights reserved.
     19058 *
     19059 * This source code is licensed under the BSD-style license found in the
     19060 * LICENSE file in the root directory of this source tree. An additional grant
     19061 * of patent rights can be found in the PATENTS file in the same directory.
    1945619062 *
    1945719063 * @providesModule monitorCodeUse
     
    1947819084module.exports = monitorCodeUse;
    1947919085
    19480 },{"./invariant":134}],149:[function(_dereq_,module,exports){
    19481 /**
    19482  * Copyright 2013-2014 Facebook, Inc.
    19483  *
    19484  * Licensed under the Apache License, Version 2.0 (the "License");
    19485  * you may not use this file except in compliance with the License.
    19486  * You may obtain a copy of the License at
    19487  *
    19488  * http://www.apache.org/licenses/LICENSE-2.0
    19489  *
    19490  * Unless required by applicable law or agreed to in writing, software
    19491  * distributed under the License is distributed on an "AS IS" BASIS,
    19492  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19493  * See the License for the specific language governing permissions and
    19494  * limitations under the License.
     19086},{"./invariant":140}],151:[function(_dereq_,module,exports){
     19087/**
     19088 * Copyright 2013-2014, Facebook, Inc.
     19089 * All rights reserved.
     19090 *
     19091 * This source code is licensed under the BSD-style license found in the
     19092 * LICENSE file in the root directory of this source tree. An additional grant
     19093 * of patent rights can be found in the PATENTS file in the same directory.
    1949519094 *
    1949619095 * @providesModule onlyChild
     
    1949819097"use strict";
    1949919098
    19500 var ReactDescriptor = _dereq_("./ReactDescriptor");
     19099var ReactElement = _dereq_("./ReactElement");
    1950119100
    1950219101var invariant = _dereq_("./invariant");
     
    1951519114function onlyChild(children) {
    1951619115  ("production" !== "development" ? invariant(
    19517     ReactDescriptor.isValidDescriptor(children),
     19116    ReactElement.isValidElement(children),
    1951819117    'onlyChild must be passed a children with exactly one child.'
    19519   ) : invariant(ReactDescriptor.isValidDescriptor(children)));
     19118  ) : invariant(ReactElement.isValidElement(children)));
    1952019119  return children;
    1952119120}
     
    1952319122module.exports = onlyChild;
    1952419123
    19525 },{"./ReactDescriptor":56,"./invariant":134}],150:[function(_dereq_,module,exports){
    19526 /**
    19527  * Copyright 2013-2014 Facebook, Inc.
    19528  *
    19529  * Licensed under the Apache License, Version 2.0 (the "License");
    19530  * you may not use this file except in compliance with the License.
    19531  * You may obtain a copy of the License at
    19532  *
    19533  * http://www.apache.org/licenses/LICENSE-2.0
    19534  *
    19535  * Unless required by applicable law or agreed to in writing, software
    19536  * distributed under the License is distributed on an "AS IS" BASIS,
    19537  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19538  * See the License for the specific language governing permissions and
    19539  * limitations under the License.
     19124},{"./ReactElement":58,"./invariant":140}],152:[function(_dereq_,module,exports){
     19125/**
     19126 * Copyright 2013-2014, Facebook, Inc.
     19127 * All rights reserved.
     19128 *
     19129 * This source code is licensed under the BSD-style license found in the
     19130 * LICENSE file in the root directory of this source tree. An additional grant
     19131 * of patent rights can be found in the PATENTS file in the same directory.
    1954019132 *
    1954119133 * @providesModule performance
     
    1955819150module.exports = performance || {};
    1955919151
    19560 },{"./ExecutionEnvironment":22}],151:[function(_dereq_,module,exports){
    19561 /**
    19562  * Copyright 2013-2014 Facebook, Inc.
    19563  *
    19564  * Licensed under the Apache License, Version 2.0 (the "License");
    19565  * you may not use this file except in compliance with the License.
    19566  * You may obtain a copy of the License at
    19567  *
    19568  * http://www.apache.org/licenses/LICENSE-2.0
    19569  *
    19570  * Unless required by applicable law or agreed to in writing, software
    19571  * distributed under the License is distributed on an "AS IS" BASIS,
    19572  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19573  * See the License for the specific language governing permissions and
    19574  * limitations under the License.
     19152},{"./ExecutionEnvironment":23}],153:[function(_dereq_,module,exports){
     19153/**
     19154 * Copyright 2013-2014, Facebook, Inc.
     19155 * All rights reserved.
     19156 *
     19157 * This source code is licensed under the BSD-style license found in the
     19158 * LICENSE file in the root directory of this source tree. An additional grant
     19159 * of patent rights can be found in the PATENTS file in the same directory.
    1957519160 *
    1957619161 * @providesModule performanceNow
     
    1959319178module.exports = performanceNow;
    1959419179
    19595 },{"./performance":150}],152:[function(_dereq_,module,exports){
    19596 /**
    19597  * Copyright 2013-2014 Facebook, Inc.
    19598  *
    19599  * Licensed under the Apache License, Version 2.0 (the "License");
    19600  * you may not use this file except in compliance with the License.
    19601  * You may obtain a copy of the License at
    19602  *
    19603  * http://www.apache.org/licenses/LICENSE-2.0
    19604  *
    19605  * Unless required by applicable law or agreed to in writing, software
    19606  * distributed under the License is distributed on an "AS IS" BASIS,
    19607  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19608  * See the License for the specific language governing permissions and
    19609  * limitations under the License.
     19180},{"./performance":152}],154:[function(_dereq_,module,exports){
     19181/**
     19182 * Copyright 2013-2014, Facebook, Inc.
     19183 * All rights reserved.
     19184 *
     19185 * This source code is licensed under the BSD-style license found in the
     19186 * LICENSE file in the root directory of this source tree. An additional grant
     19187 * of patent rights can be found in the PATENTS file in the same directory.
    1961019188 *
    1961119189 * @providesModule setInnerHTML
     
    1961519193
    1961619194var ExecutionEnvironment = _dereq_("./ExecutionEnvironment");
     19195
     19196var WHITESPACE_TEST = /^[ \r\n\t\f]/;
     19197var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/;
    1961719198
    1961819199/**
     
    1965219233      // in-front of the non-visible tags. Piggyback on the whitespace fix
    1965319234      // and simply check if any non-visible tags appear in the source.
    19654       if (html.match(/^[ \r\n\t\f]/) ||
    19655           html[0] === '<' && (
    19656             html.indexOf('<noscript') !== -1 ||
    19657             html.indexOf('<script') !== -1 ||
    19658             html.indexOf('<style') !== -1 ||
    19659             html.indexOf('<meta') !== -1 ||
    19660             html.indexOf('<link') !== -1)) {
     19235      if (WHITESPACE_TEST.test(html) ||
     19236          html[0] === '<' && NONVISIBLE_TEST.test(html)) {
    1966119237        // Recover leading whitespace by temporarily prepending any character.
    1966219238        // \uFEFF has the potential advantage of being zero-width/invisible.
     
    1968019256module.exports = setInnerHTML;
    1968119257
    19682 },{"./ExecutionEnvironment":22}],153:[function(_dereq_,module,exports){
    19683 /**
    19684  * Copyright 2013-2014 Facebook, Inc.
    19685  *
    19686  * Licensed under the Apache License, Version 2.0 (the "License");
    19687  * you may not use this file except in compliance with the License.
    19688  * You may obtain a copy of the License at
    19689  *
    19690  * http://www.apache.org/licenses/LICENSE-2.0
    19691  *
    19692  * Unless required by applicable law or agreed to in writing, software
    19693  * distributed under the License is distributed on an "AS IS" BASIS,
    19694  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19695  * See the License for the specific language governing permissions and
    19696  * limitations under the License.
     19258},{"./ExecutionEnvironment":23}],155:[function(_dereq_,module,exports){
     19259/**
     19260 * Copyright 2013-2014, Facebook, Inc.
     19261 * All rights reserved.
     19262 *
     19263 * This source code is licensed under the BSD-style license found in the
     19264 * LICENSE file in the root directory of this source tree. An additional grant
     19265 * of patent rights can be found in the PATENTS file in the same directory.
    1969719266 *
    1969819267 * @providesModule shallowEqual
     
    1972019289    }
    1972119290  }
    19722   // Test for B'a keys missing from A.
     19291  // Test for B's keys missing from A.
    1972319292  for (key in objB) {
    1972419293    if (objB.hasOwnProperty(key) && !objA.hasOwnProperty(key)) {
     
    1973119300module.exports = shallowEqual;
    1973219301
    19733 },{}],154:[function(_dereq_,module,exports){
    19734 /**
    19735  * Copyright 2013-2014 Facebook, Inc.
    19736  *
    19737  * Licensed under the Apache License, Version 2.0 (the "License");
    19738  * you may not use this file except in compliance with the License.
    19739  * You may obtain a copy of the License at
    19740  *
    19741  * http://www.apache.org/licenses/LICENSE-2.0
    19742  *
    19743  * Unless required by applicable law or agreed to in writing, software
    19744  * distributed under the License is distributed on an "AS IS" BASIS,
    19745  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19746  * See the License for the specific language governing permissions and
    19747  * limitations under the License.
     19302},{}],156:[function(_dereq_,module,exports){
     19303/**
     19304 * Copyright 2013-2014, Facebook, Inc.
     19305 * All rights reserved.
     19306 *
     19307 * This source code is licensed under the BSD-style license found in the
     19308 * LICENSE file in the root directory of this source tree. An additional grant
     19309 * of patent rights can be found in the PATENTS file in the same directory.
    1974819310 *
    1974919311 * @providesModule shouldUpdateReactComponent
     
    1975419316
    1975519317/**
    19756  * Given a `prevDescriptor` and `nextDescriptor`, determines if the existing
     19318 * Given a `prevElement` and `nextElement`, determines if the existing
    1975719319 * instance should be updated as opposed to being destroyed or replaced by a new
    19758  * instance. Both arguments are descriptors. This ensures that this logic can
     19320 * instance. Both arguments are elements. This ensures that this logic can
    1975919321 * operate on stateless trees without any backing instance.
    1976019322 *
    19761  * @param {?object} prevDescriptor
    19762  * @param {?object} nextDescriptor
     19323 * @param {?object} prevElement
     19324 * @param {?object} nextElement
    1976319325 * @return {boolean} True if the existing instance should be updated.
    1976419326 * @protected
    1976519327 */
    19766 function shouldUpdateReactComponent(prevDescriptor, nextDescriptor) {
    19767   if (prevDescriptor && nextDescriptor &&
    19768       prevDescriptor.type === nextDescriptor.type && (
    19769         (prevDescriptor.props && prevDescriptor.props.key) ===
    19770         (nextDescriptor.props && nextDescriptor.props.key)
    19771       ) && prevDescriptor._owner === nextDescriptor._owner) {
     19328function shouldUpdateReactComponent(prevElement, nextElement) {
     19329  if (prevElement && nextElement &&
     19330      prevElement.type === nextElement.type &&
     19331      prevElement.key === nextElement.key &&
     19332      prevElement._owner === nextElement._owner) {
    1977219333    return true;
    1977319334  }
     
    1977719338module.exports = shouldUpdateReactComponent;
    1977819339
    19779 },{}],155:[function(_dereq_,module,exports){
    19780 /**
    19781  * Copyright 2014 Facebook, Inc.
    19782  *
    19783  * Licensed under the Apache License, Version 2.0 (the "License");
    19784  * you may not use this file except in compliance with the License.
    19785  * You may obtain a copy of the License at
    19786  *
    19787  * http://www.apache.org/licenses/LICENSE-2.0
    19788  *
    19789  * Unless required by applicable law or agreed to in writing, software
    19790  * distributed under the License is distributed on an "AS IS" BASIS,
    19791  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19792  * See the License for the specific language governing permissions and
    19793  * limitations under the License.
     19340},{}],157:[function(_dereq_,module,exports){
     19341/**
     19342 * Copyright 2014, Facebook, Inc.
     19343 * All rights reserved.
     19344 *
     19345 * This source code is licensed under the BSD-style license found in the
     19346 * LICENSE file in the root directory of this source tree. An additional grant
     19347 * of patent rights can be found in the PATENTS file in the same directory.
    1979419348 *
    1979519349 * @providesModule toArray
     
    1985419408module.exports = toArray;
    1985519409
    19856 },{"./invariant":134}],156:[function(_dereq_,module,exports){
    19857 /**
    19858  * Copyright 2013-2014 Facebook, Inc.
    19859  *
    19860  * Licensed under the Apache License, Version 2.0 (the "License");
    19861  * you may not use this file except in compliance with the License.
    19862  * You may obtain a copy of the License at
    19863  *
    19864  * http://www.apache.org/licenses/LICENSE-2.0
    19865  *
    19866  * Unless required by applicable law or agreed to in writing, software
    19867  * distributed under the License is distributed on an "AS IS" BASIS,
    19868  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    19869  * See the License for the specific language governing permissions and
    19870  * limitations under the License.
     19410},{"./invariant":140}],158:[function(_dereq_,module,exports){
     19411/**
     19412 * Copyright 2013-2014, Facebook, Inc.
     19413 * All rights reserved.
     19414 *
     19415 * This source code is licensed under the BSD-style license found in the
     19416 * LICENSE file in the root directory of this source tree. An additional grant
     19417 * of patent rights can be found in the PATENTS file in the same directory.
    1987119418 *
    1987219419 * @providesModule traverseAllChildren
     
    1987519422"use strict";
    1987619423
     19424var ReactElement = _dereq_("./ReactElement");
    1987719425var ReactInstanceHandles = _dereq_("./ReactInstanceHandles");
    19878 var ReactTextComponent = _dereq_("./ReactTextComponent");
    1987919426
    1988019427var invariant = _dereq_("./invariant");
     
    1991119458 */
    1991219459function getComponentKey(component, index) {
    19913   if (component && component.props && component.props.key != null) {
     19460  if (component && component.key != null) {
    1991419461    // Explicit key
    19915     return wrapUserProvidedKey(component.props.key);
     19462    return wrapUserProvidedKey(component.key);
    1991619463  }
    1991719464  // Implicit key determined by the index in the set
     
    1995419501var traverseAllChildrenImpl =
    1995519502  function(children, nameSoFar, indexSoFar, callback, traverseContext) {
     19503    var nextName, nextIndex;
    1995619504    var subtreeCount = 0;  // Count of children found in the current subtree.
    1995719505    if (Array.isArray(children)) {
    1995819506      for (var i = 0; i < children.length; i++) {
    1995919507        var child = children[i];
    19960         var nextName = (
     19508        nextName = (
    1996119509          nameSoFar +
    1996219510          (nameSoFar ? SUBSEPARATOR : SEPARATOR) +
    1996319511          getComponentKey(child, i)
    1996419512        );
    19965         var nextIndex = indexSoFar + subtreeCount;
     19513        nextIndex = indexSoFar + subtreeCount;
    1996619514        subtreeCount += traverseAllChildrenImpl(
    1996719515          child,
     
    1998319531        callback(traverseContext, null, storageName, indexSoFar);
    1998419532        subtreeCount = 1;
    19985       } else if (children.type && children.type.prototype &&
    19986                  children.type.prototype.mountComponentIntoNode) {
     19533      } else if (type === 'string' || type === 'number' ||
     19534                 ReactElement.isValidElement(children)) {
    1998719535        callback(traverseContext, children, storageName, indexSoFar);
    1998819536        subtreeCount = 1;
    19989       } else {
    19990         if (type === 'object') {
    19991           ("production" !== "development" ? invariant(
    19992             !children || children.nodeType !== 1,
    19993             'traverseAllChildren(...): Encountered an invalid child; DOM ' +
    19994             'elements are not valid children of React components.'
    19995           ) : invariant(!children || children.nodeType !== 1));
    19996           for (var key in children) {
    19997             if (children.hasOwnProperty(key)) {
    19998               subtreeCount += traverseAllChildrenImpl(
    19999                 children[key],
    20000                 (
    20001                   nameSoFar + (nameSoFar ? SUBSEPARATOR : SEPARATOR) +
    20002                   wrapUserProvidedKey(key) + SUBSEPARATOR +
    20003                   getComponentKey(children[key], 0)
    20004                 ),
    20005                 indexSoFar + subtreeCount,
    20006                 callback,
    20007                 traverseContext
    20008               );
    20009             }
     19537      } else if (type === 'object') {
     19538        ("production" !== "development" ? invariant(
     19539          !children || children.nodeType !== 1,
     19540          'traverseAllChildren(...): Encountered an invalid child; DOM ' +
     19541          'elements are not valid children of React components.'
     19542        ) : invariant(!children || children.nodeType !== 1));
     19543        for (var key in children) {
     19544          if (children.hasOwnProperty(key)) {
     19545            nextName = (
     19546              nameSoFar + (nameSoFar ? SUBSEPARATOR : SEPARATOR) +
     19547              wrapUserProvidedKey(key) + SUBSEPARATOR +
     19548              getComponentKey(children[key], 0)
     19549            );
     19550            nextIndex = indexSoFar + subtreeCount;
     19551            subtreeCount += traverseAllChildrenImpl(
     19552              children[key],
     19553              nextName,
     19554              nextIndex,
     19555              callback,
     19556              traverseContext
     19557            );
    2001019558          }
    20011         } else if (type === 'string') {
    20012           var normalizedText = ReactTextComponent(children);
    20013           callback(traverseContext, normalizedText, storageName, indexSoFar);
    20014           subtreeCount += 1;
    20015         } else if (type === 'number') {
    20016           var normalizedNumber = ReactTextComponent('' + children);
    20017           callback(traverseContext, normalizedNumber, storageName, indexSoFar);
    20018           subtreeCount += 1;
    2001919559        }
    2002019560      }
     
    2004919589module.exports = traverseAllChildren;
    2005019590
    20051 },{"./ReactInstanceHandles":64,"./ReactTextComponent":83,"./invariant":134}],157:[function(_dereq_,module,exports){
    20052 /**
    20053  * Copyright 2013-2014 Facebook, Inc.
    20054  *
    20055  * Licensed under the Apache License, Version 2.0 (the "License");
    20056  * you may not use this file except in compliance with the License.
    20057  * You may obtain a copy of the License at
    20058  *
    20059  * http://www.apache.org/licenses/LICENSE-2.0
    20060  *
    20061  * Unless required by applicable law or agreed to in writing, software
    20062  * distributed under the License is distributed on an "AS IS" BASIS,
    20063  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    20064  * See the License for the specific language governing permissions and
    20065  * limitations under the License.
     19591},{"./ReactElement":58,"./ReactInstanceHandles":66,"./invariant":140}],159:[function(_dereq_,module,exports){
     19592/**
     19593 * Copyright 2013-2014, Facebook, Inc.
     19594 * All rights reserved.
     19595 *
     19596 * This source code is licensed under the BSD-style license found in the
     19597 * LICENSE file in the root directory of this source tree. An additional grant
     19598 * of patent rights can be found in the PATENTS file in the same directory.
    2006619599 *
    2006719600 * @providesModule update
     
    2007019603"use strict";
    2007119604
    20072 var copyProperties = _dereq_("./copyProperties");
     19605var assign = _dereq_("./Object.assign");
    2007319606var keyOf = _dereq_("./keyOf");
    2007419607var invariant = _dereq_("./invariant");
     
    2007819611    return x.concat();
    2007919612  } else if (x && typeof x === 'object') {
    20080     return copyProperties(new x.constructor(), x);
     19613    return assign(new x.constructor(), x);
    2008119614  } else {
    2008219615    return x;
     
    2015819691      nextValue
    2015919692    ) : invariant(nextValue && typeof nextValue === 'object'));
    20160     copyProperties(nextValue, spec[COMMAND_MERGE]);
     19693    assign(nextValue, spec[COMMAND_MERGE]);
    2016119694  }
    2016219695
     
    2022219755module.exports = update;
    2022319756
    20224 },{"./copyProperties":110,"./invariant":134,"./keyOf":141}],158:[function(_dereq_,module,exports){
    20225 /**
    20226  * Copyright 2014 Facebook, Inc.
    20227  *
    20228  * Licensed under the Apache License, Version 2.0 (the "License");
    20229  * you may not use this file except in compliance with the License.
    20230  * You may obtain a copy of the License at
    20231  *
    20232  * http://www.apache.org/licenses/LICENSE-2.0
    20233  *
    20234  * Unless required by applicable law or agreed to in writing, software
    20235  * distributed under the License is distributed on an "AS IS" BASIS,
    20236  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    20237  * See the License for the specific language governing permissions and
    20238  * limitations under the License.
     19757},{"./Object.assign":29,"./invariant":140,"./keyOf":147}],160:[function(_dereq_,module,exports){
     19758/**
     19759 * Copyright 2014, Facebook, Inc.
     19760 * All rights reserved.
     19761 *
     19762 * This source code is licensed under the BSD-style license found in the
     19763 * LICENSE file in the root directory of this source tree. An additional grant
     19764 * of patent rights can be found in the PATENTS file in the same directory.
    2023919765 *
    2024019766 * @providesModule warning
     
    2027219798module.exports = warning;
    2027319799
    20274 },{"./emptyFunction":116}]},{},[88])
    20275 (88)
     19800},{"./emptyFunction":121}]},{},[1])(1)
    2027619801});
  • SRUAggregator/trunk/src/main/webapp/lib/react-with-addons.min.js

    r5758 r5771  
    11/**
    2  * React (with addons) v0.11.2
     2 * React (with addons) v0.12.0
    33 *
    4  * Copyright 2013-2014 Facebook, Inc.
     4 * Copyright 2013-2014, Facebook, Inc.
     5 * All rights reserved.
    56 *
    6  * Licensed under the Apache License, Version 2.0 (the "License");
    7  * you may not use this file except in compliance with the License.
    8  * You may obtain a copy of the License at
     7 * This source code is licensed under the BSD-style license found in the
     8 * LICENSE file in the root directory of this source tree. An additional grant
     9 * of patent rights can be found in the PATENTS file in the same directory.
    910 *
    10  * http://www.apache.org/licenses/LICENSE-2.0
    11  *
    12  * Unless required by applicable law or agreed to in writing, software
    13  * distributed under the License is distributed on an "AS IS" BASIS,
    14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15  * See the License for the specific language governing permissions and
    16  * limitations under the License.
    1711 */
    18 !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self),t.React=e()}}(function(){return function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(i)return i(a,!0);throw new Error("Cannot find module '"+a+"'")}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t){"use strict";var n=e("./focusNode"),r={componentDidMount:function(){this.props.autoFocus&&n(this.getDOMNode())}};t.exports=r},{"./focusNode":117}],2:[function(e,t){"use strict";function n(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function r(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}var o=e("./EventConstants"),i=e("./EventPropagators"),a=e("./ExecutionEnvironment"),s=e("./SyntheticInputEvent"),u=e("./keyOf"),c=a.canUseDOM&&"TextEvent"in window&&!("documentMode"in document||n()),l=32,p=String.fromCharCode(l),d=o.topLevelTypes,f={beforeInput:{phasedRegistrationNames:{bubbled:u({onBeforeInput:null}),captured:u({onBeforeInputCapture:null})},dependencies:[d.topCompositionEnd,d.topKeyPress,d.topTextInput,d.topPaste]}},h=null,v={eventTypes:f,extractEvents:function(e,t,n,o){var a;if(c)switch(e){case d.topKeyPress:var u=o.which;if(u!==l)return;a=String.fromCharCode(u);break;case d.topTextInput:if(a=o.data,a===p)return;break;default:return}else{switch(e){case d.topPaste:h=null;break;case d.topKeyPress:o.which&&!r(o)&&(h=String.fromCharCode(o.which));break;case d.topCompositionEnd:h=o.data}if(null===h)return;a=h}if(a){var v=s.getPooled(f.beforeInput,n,o);return v.data=a,h=null,i.accumulateTwoPhaseDispatches(v),v}}};t.exports=v},{"./EventConstants":16,"./EventPropagators":21,"./ExecutionEnvironment":22,"./SyntheticInputEvent":95,"./keyOf":138}],3:[function(e,t){var n=e("./invariant"),r={addClass:function(e,t){return n(!/\s/.test(t)),t&&(e.classList?e.classList.add(t):r.hasClass(e,t)||(e.className=e.className+" "+t)),e},removeClass:function(e,t){return n(!/\s/.test(t)),t&&(e.classList?e.classList.remove(t):r.hasClass(e,t)&&(e.className=e.className.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,""))),e},conditionClass:function(e,t,n){return(n?r.addClass:r.removeClass)(e,t)},hasClass:function(e,t){return n(!/\s/.test(t)),e.classList?!!t&&e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}};t.exports=r},{"./invariant":131}],4:[function(e,t){"use strict";function n(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var r={columnCount:!0,fillOpacity:!0,flex:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},o=["Webkit","ms","Moz","O"];Object.keys(r).forEach(function(e){o.forEach(function(t){r[n(t,e)]=r[e]})});var i={background:{backgroundImage:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundColor:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0}},a={isUnitlessNumber:r,shorthandPropertyExpansions:i};t.exports=a},{}],5:[function(e,t){"use strict";var n=e("./CSSProperty"),r=e("./dangerousStyleValue"),o=e("./hyphenateStyleName"),i=e("./memoizeStringOnly"),a=i(function(e){return o(e)}),s={createMarkupForStyles:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];null!=o&&(t+=a(n)+":",t+=r(n,o)+";")}return t||null},setValueForStyles:function(e,t){var o=e.style;for(var i in t)if(t.hasOwnProperty(i)){var a=r(i,t[i]);if(a)o[i]=a;else{var s=n.shorthandPropertyExpansions[i];if(s)for(var u in s)o[u]="";else o[i]=""}}}};t.exports=s},{"./CSSProperty":4,"./dangerousStyleValue":112,"./hyphenateStyleName":129,"./memoizeStringOnly":140}],6:[function(e,t){"use strict";function n(){this._callbacks=null,this._contexts=null}var r=e("./PooledClass"),o=e("./invariant"),i=e("./mixInto");i(n,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,t=this._contexts;if(e){o(e.length===t.length),this._callbacks=null,this._contexts=null;for(var n=0,r=e.length;r>n;n++)e[n].call(t[n]);e.length=0,t.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),r.addPoolingTo(n),t.exports=n},{"./PooledClass":28,"./invariant":131,"./mixInto":144}],7:[function(e,t){"use strict";function n(e){return"SELECT"===e.nodeName||"INPUT"===e.nodeName&&"file"===e.type}function r(e){var t=M.getPooled(P.change,S,e);C.accumulateTwoPhaseDispatches(t),R.batchedUpdates(o,t)}function o(e){y.enqueueEvents(e),y.processEventQueue()}function i(e,t){T=e,S=t,T.attachEvent("onchange",r)}function a(){T&&(T.detachEvent("onchange",r),T=null,S=null)}function s(e,t,n){return e===O.topChange?n:void 0}function u(e,t,n){e===O.topFocus?(a(),i(t,n)):e===O.topBlur&&a()}function c(e,t){T=e,S=t,w=e.value,_=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(T,"value",k),T.attachEvent("onpropertychange",p)}function l(){T&&(delete T.value,T.detachEvent("onpropertychange",p),T=null,S=null,w=null,_=null)}function p(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==w&&(w=t,r(e))}}function d(e,t,n){return e===O.topInput?n:void 0}function f(e,t,n){e===O.topFocus?(l(),c(t,n)):e===O.topBlur&&l()}function h(e){return e!==O.topSelectionChange&&e!==O.topKeyUp&&e!==O.topKeyDown||!T||T.value===w?void 0:(w=T.value,S)}function v(e){return"INPUT"===e.nodeName&&("checkbox"===e.type||"radio"===e.type)}function m(e,t,n){return e===O.topClick?n:void 0}var g=e("./EventConstants"),y=e("./EventPluginHub"),C=e("./EventPropagators"),E=e("./ExecutionEnvironment"),R=e("./ReactUpdates"),M=e("./SyntheticEvent"),D=e("./isEventSupported"),x=e("./isTextInputElement"),b=e("./keyOf"),O=g.topLevelTypes,P={change:{phasedRegistrationNames:{bubbled:b({onChange:null}),captured:b({onChangeCapture:null})},dependencies:[O.topBlur,O.topChange,O.topClick,O.topFocus,O.topInput,O.topKeyDown,O.topKeyUp,O.topSelectionChange]}},T=null,S=null,w=null,_=null,I=!1;E.canUseDOM&&(I=D("change")&&(!("documentMode"in document)||document.documentMode>8));var N=!1;E.canUseDOM&&(N=D("input")&&(!("documentMode"in document)||document.documentMode>9));var k={get:function(){return _.get.call(this)},set:function(e){w=""+e,_.set.call(this,e)}},A={eventTypes:P,extractEvents:function(e,t,r,o){var i,a;if(n(t)?I?i=s:a=u:x(t)?N?i=d:(i=h,a=f):v(t)&&(i=m),i){var c=i(e,t,r);if(c){var l=M.getPooled(P.change,c,o);return C.accumulateTwoPhaseDispatches(l),l}}a&&a(e,t,r)}};t.exports=A},{"./EventConstants":16,"./EventPluginHub":18,"./EventPropagators":21,"./ExecutionEnvironment":22,"./ReactUpdates":84,"./SyntheticEvent":93,"./isEventSupported":132,"./isTextInputElement":134,"./keyOf":138}],8:[function(e,t){"use strict";var n=0,r={createReactRootIndex:function(){return n++}};t.exports=r},{}],9:[function(e,t){"use strict";function n(e){switch(e){case g.topCompositionStart:return C.compositionStart;case g.topCompositionEnd:return C.compositionEnd;case g.topCompositionUpdate:return C.compositionUpdate}}function r(e,t){return e===g.topKeyDown&&t.keyCode===h}function o(e,t){switch(e){case g.topKeyUp:return-1!==f.indexOf(t.keyCode);case g.topKeyDown:return t.keyCode!==h;case g.topKeyPress:case g.topMouseDown:case g.topBlur:return!0;default:return!1}}function i(e){this.root=e,this.startSelection=c.getSelection(e),this.startValue=this.getText()}var a=e("./EventConstants"),s=e("./EventPropagators"),u=e("./ExecutionEnvironment"),c=e("./ReactInputSelection"),l=e("./SyntheticCompositionEvent"),p=e("./getTextContentAccessor"),d=e("./keyOf"),f=[9,13,27,32],h=229,v=u.canUseDOM&&"CompositionEvent"in window,m=!v||"documentMode"in document&&document.documentMode>8&&document.documentMode<=11,g=a.topLevelTypes,y=null,C={compositionEnd:{phasedRegistrationNames:{bubbled:d({onCompositionEnd:null}),captured:d({onCompositionEndCapture:null})},dependencies:[g.topBlur,g.topCompositionEnd,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:d({onCompositionStart:null}),captured:d({onCompositionStartCapture:null})},dependencies:[g.topBlur,g.topCompositionStart,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:d({onCompositionUpdate:null}),captured:d({onCompositionUpdateCapture:null})},dependencies:[g.topBlur,g.topCompositionUpdate,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]}};i.prototype.getText=function(){return this.root.value||this.root[p()]},i.prototype.getData=function(){var e=this.getText(),t=this.startSelection.start,n=this.startValue.length-this.startSelection.end;return e.substr(t,e.length-n-t)};var E={eventTypes:C,extractEvents:function(e,t,a,u){var c,p;if(v?c=n(e):y?o(e,u)&&(c=C.compositionEnd):r(e,u)&&(c=C.compositionStart),m&&(y||c!==C.compositionStart?c===C.compositionEnd&&y&&(p=y.getData(),y=null):y=new i(t)),c){var d=l.getPooled(c,a,u);return p&&(d.data=p),s.accumulateTwoPhaseDispatches(d),d}}};t.exports=E},{"./EventConstants":16,"./EventPropagators":21,"./ExecutionEnvironment":22,"./ReactInputSelection":61,"./SyntheticCompositionEvent":91,"./getTextContentAccessor":126,"./keyOf":138}],10:[function(e,t){"use strict";function n(e,t,n){e.insertBefore(t,e.childNodes[n]||null)}var r,o=e("./Danger"),i=e("./ReactMultiChildUpdateTypes"),a=e("./getTextContentAccessor"),s=e("./invariant"),u=a();r="textContent"===u?function(e,t){e.textContent=t}:function(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);if(t){var n=e.ownerDocument||document;e.appendChild(n.createTextNode(t))}};var c={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,updateTextContent:r,processUpdates:function(e,t){for(var a,u=null,c=null,l=0;a=e[l];l++)if(a.type===i.MOVE_EXISTING||a.type===i.REMOVE_NODE){var p=a.fromIndex,d=a.parentNode.childNodes[p],f=a.parentID;s(d),u=u||{},u[f]=u[f]||[],u[f][p]=d,c=c||[],c.push(d)}var h=o.dangerouslyRenderMarkup(t);if(c)for(var v=0;v<c.length;v++)c[v].parentNode.removeChild(c[v]);for(var m=0;a=e[m];m++)switch(a.type){case i.INSERT_MARKUP:n(a.parentNode,h[a.markupIndex],a.toIndex);break;case i.MOVE_EXISTING:n(a.parentNode,u[a.parentID][a.fromIndex],a.toIndex);break;case i.TEXT_CONTENT:r(a.parentNode,a.textContent);break;case i.REMOVE_NODE:}}};t.exports=c},{"./Danger":13,"./ReactMultiChildUpdateTypes":67,"./getTextContentAccessor":126,"./invariant":131}],11:[function(e,t){"use strict";var n=e("./invariant"),r={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var t=e.Properties||{},o=e.DOMAttributeNames||{},a=e.DOMPropertyNames||{},s=e.DOMMutationMethods||{};e.isCustomAttribute&&i._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var u in t){n(!i.isStandardName.hasOwnProperty(u)),i.isStandardName[u]=!0;var c=u.toLowerCase();if(i.getPossibleStandardName[c]=u,o.hasOwnProperty(u)){var l=o[u];i.getPossibleStandardName[l]=u,i.getAttributeName[u]=l}else i.getAttributeName[u]=c;i.getPropertyName[u]=a.hasOwnProperty(u)?a[u]:u,i.getMutationMethod[u]=s.hasOwnProperty(u)?s[u]:null;var p=t[u];i.mustUseAttribute[u]=p&r.MUST_USE_ATTRIBUTE,i.mustUseProperty[u]=p&r.MUST_USE_PROPERTY,i.hasSideEffects[u]=p&r.HAS_SIDE_EFFECTS,i.hasBooleanValue[u]=p&r.HAS_BOOLEAN_VALUE,i.hasNumericValue[u]=p&r.HAS_NUMERIC_VALUE,i.hasPositiveNumericValue[u]=p&r.HAS_POSITIVE_NUMERIC_VALUE,i.hasOverloadedBooleanValue[u]=p&r.HAS_OVERLOADED_BOOLEAN_VALUE,n(!i.mustUseAttribute[u]||!i.mustUseProperty[u]),n(i.mustUseProperty[u]||!i.hasSideEffects[u]),n(!!i.hasBooleanValue[u]+!!i.hasNumericValue[u]+!!i.hasOverloadedBooleanValue[u]<=1)}}},o={},i={ID_ATTRIBUTE_NAME:"data-reactid",isStandardName:{},getPossibleStandardName:{},getAttributeName:{},getPropertyName:{},getMutationMethod:{},mustUseAttribute:{},mustUseProperty:{},hasSideEffects:{},hasBooleanValue:{},hasNumericValue:{},hasPositiveNumericValue:{},hasOverloadedBooleanValue:{},_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<i._isCustomAttributeFunctions.length;t++){var n=i._isCustomAttributeFunctions[t];if(n(e))return!0}return!1},getDefaultValueForProperty:function(e,t){var n,r=o[e];return r||(o[e]=r={}),t in r||(n=document.createElement(e),r[t]=n[t]),r[t]},injection:r};t.exports=i},{"./invariant":131}],12:[function(e,t){"use strict";function n(e,t){return null==t||r.hasBooleanValue[e]&&!t||r.hasNumericValue[e]&&isNaN(t)||r.hasPositiveNumericValue[e]&&1>t||r.hasOverloadedBooleanValue[e]&&t===!1}var r=e("./DOMProperty"),o=e("./escapeTextForBrowser"),i=e("./memoizeStringOnly"),a=(e("./warning"),i(function(e){return o(e)+'="'})),s={createMarkupForID:function(e){return a(r.ID_ATTRIBUTE_NAME)+o(e)+'"'},createMarkupForProperty:function(e,t){if(r.isStandardName.hasOwnProperty(e)&&r.isStandardName[e]){if(n(e,t))return"";var i=r.getAttributeName[e];return r.hasBooleanValue[e]||r.hasOverloadedBooleanValue[e]&&t===!0?o(i):a(i)+o(t)+'"'}return r.isCustomAttribute(e)?null==t?"":a(e)+o(t)+'"':null},setValueForProperty:function(e,t,o){if(r.isStandardName.hasOwnProperty(t)&&r.isStandardName[t]){var i=r.getMutationMethod[t];if(i)i(e,o);else if(n(t,o))this.deleteValueForProperty(e,t);else if(r.mustUseAttribute[t])e.setAttribute(r.getAttributeName[t],""+o);else{var a=r.getPropertyName[t];r.hasSideEffects[t]&&e[a]===o||(e[a]=o)}}else r.isCustomAttribute(t)&&(null==o?e.removeAttribute(t):e.setAttribute(t,""+o))},deleteValueForProperty:function(e,t){if(r.isStandardName.hasOwnProperty(t)&&r.isStandardName[t]){var n=r.getMutationMethod[t];if(n)n(e,void 0);else if(r.mustUseAttribute[t])e.removeAttribute(r.getAttributeName[t]);else{var o=r.getPropertyName[t],i=r.getDefaultValueForProperty(e.nodeName,o);r.hasSideEffects[t]&&e[o]===i||(e[o]=i)}}else r.isCustomAttribute(t)&&e.removeAttribute(t)}};t.exports=s},{"./DOMProperty":11,"./escapeTextForBrowser":115,"./memoizeStringOnly":140,"./warning":153}],13:[function(e,t){"use strict";function n(e){return e.substring(1,e.indexOf(" "))}var r=e("./ExecutionEnvironment"),o=e("./createNodesFromMarkup"),i=e("./emptyFunction"),a=e("./getMarkupWrap"),s=e("./invariant"),u=/^(<[^ \/>]+)/,c="data-danger-index",l={dangerouslyRenderMarkup:function(e){s(r.canUseDOM);for(var t,l={},p=0;p<e.length;p++)s(e[p]),t=n(e[p]),t=a(t)?t:"*",l[t]=l[t]||[],l[t][p]=e[p];var d=[],f=0;for(t in l)if(l.hasOwnProperty(t)){var h=l[t];for(var v in h)if(h.hasOwnProperty(v)){var m=h[v];h[v]=m.replace(u,"$1 "+c+'="'+v+'" ')}var g=o(h.join(""),i);for(p=0;p<g.length;++p){var y=g[p];y.hasAttribute&&y.hasAttribute(c)&&(v=+y.getAttribute(c),y.removeAttribute(c),s(!d.hasOwnProperty(v)),d[v]=y,f+=1)}}return s(f===d.length),s(d.length===e.length),d},dangerouslyReplaceNodeWithMarkup:function(e,t){s(r.canUseDOM),s(t),s("html"!==e.tagName.toLowerCase());var n=o(t,i)[0];e.parentNode.replaceChild(n,e)}};t.exports=l},{"./ExecutionEnvironment":22,"./createNodesFromMarkup":110,"./emptyFunction":113,"./getMarkupWrap":123,"./invariant":131}],14:[function(e,t){"use strict";var n=e("./keyOf"),r=[n({ResponderEventPlugin:null}),n({SimpleEventPlugin:null}),n({TapEventPlugin:null}),n({EnterLeaveEventPlugin:null}),n({ChangeEventPlugin:null}),n({SelectEventPlugin:null}),n({CompositionEventPlugin:null}),n({BeforeInputEventPlugin:null}),n({AnalyticsEventPlugin:null}),n({MobileSafariClickEventPlugin:null})];t.exports=r},{"./keyOf":138}],15:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./EventPropagators"),o=e("./SyntheticMouseEvent"),i=e("./ReactMount"),a=e("./keyOf"),s=n.topLevelTypes,u=i.getFirstReactDOM,c={mouseEnter:{registrationName:a({onMouseEnter:null}),dependencies:[s.topMouseOut,s.topMouseOver]},mouseLeave:{registrationName:a({onMouseLeave:null}),dependencies:[s.topMouseOut,s.topMouseOver]}},l=[null,null],p={eventTypes:c,extractEvents:function(e,t,n,a){if(e===s.topMouseOver&&(a.relatedTarget||a.fromElement))return null;if(e!==s.topMouseOut&&e!==s.topMouseOver)return null;var p;if(t.window===t)p=t;else{var d=t.ownerDocument;p=d?d.defaultView||d.parentWindow:window}var f,h;if(e===s.topMouseOut?(f=t,h=u(a.relatedTarget||a.toElement)||p):(f=p,h=t),f===h)return null;var v=f?i.getID(f):"",m=h?i.getID(h):"",g=o.getPooled(c.mouseLeave,v,a);g.type="mouseleave",g.target=f,g.relatedTarget=h;var y=o.getPooled(c.mouseEnter,m,a);return y.type="mouseenter",y.target=h,y.relatedTarget=f,r.accumulateEnterLeaveDispatches(g,y,v,m),l[0]=g,l[1]=y,l}};t.exports=p},{"./EventConstants":16,"./EventPropagators":21,"./ReactMount":65,"./SyntheticMouseEvent":97,"./keyOf":138}],16:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({bubbled:null,captured:null}),o=n({topBlur:null,topChange:null,topClick:null,topCompositionEnd:null,topCompositionStart:null,topCompositionUpdate:null,topContextMenu:null,topCopy:null,topCut:null,topDoubleClick:null,topDrag:null,topDragEnd:null,topDragEnter:null,topDragExit:null,topDragLeave:null,topDragOver:null,topDragStart:null,topDrop:null,topError:null,topFocus:null,topInput:null,topKeyDown:null,topKeyPress:null,topKeyUp:null,topLoad:null,topMouseDown:null,topMouseMove:null,topMouseOut:null,topMouseOver:null,topMouseUp:null,topPaste:null,topReset:null,topScroll:null,topSelectionChange:null,topSubmit:null,topTextInput:null,topTouchCancel:null,topTouchEnd:null,topTouchMove:null,topTouchStart:null,topWheel:null}),i={topLevelTypes:o,PropagationPhases:r};t.exports=i},{"./keyMirror":137}],17:[function(e,t){var n=e("./emptyFunction"),r={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,r){return e.addEventListener?(e.addEventListener(t,r,!0),{remove:function(){e.removeEventListener(t,r,!0)}}):{remove:n}},registerDefault:function(){}};t.exports=r},{"./emptyFunction":113}],18:[function(e,t){"use strict";var n=e("./EventPluginRegistry"),r=e("./EventPluginUtils"),o=e("./accumulate"),i=e("./forEachAccumulated"),a=e("./invariant"),s=(e("./isEventSupported"),e("./monitorCodeUse"),{}),u=null,c=function(e){if(e){var t=r.executeDispatch,o=n.getPluginModuleForEvent(e);o&&o.executeDispatch&&(t=o.executeDispatch),r.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e)}},l=null,p={injection:{injectMount:r.injection.injectMount,injectInstanceHandle:function(e){l=e},getInstanceHandle:function(){return l},injectEventPluginOrder:n.injectEventPluginOrder,injectEventPluginsByName:n.injectEventPluginsByName},eventNameDispatchConfigs:n.eventNameDispatchConfigs,registrationNameModules:n.registrationNameModules,putListener:function(e,t,n){a(!n||"function"==typeof n);var r=s[t]||(s[t]={});r[e]=n},getListener:function(e,t){var n=s[t];return n&&n[e]},deleteListener:function(e,t){var n=s[t];n&&delete n[e]},deleteAllListeners:function(e){for(var t in s)delete s[t][e]},extractEvents:function(e,t,r,i){for(var a,s=n.plugins,u=0,c=s.length;c>u;u++){var l=s[u];if(l){var p=l.extractEvents(e,t,r,i);p&&(a=o(a,p))}}return a},enqueueEvents:function(e){e&&(u=o(u,e))},processEventQueue:function(){var e=u;u=null,i(e,c),a(!u)},__purge:function(){s={}},__getListenerBank:function(){return s}};t.exports=p},{"./EventPluginRegistry":19,"./EventPluginUtils":20,"./accumulate":103,"./forEachAccumulated":118,"./invariant":131,"./isEventSupported":132,"./monitorCodeUse":145}],19:[function(e,t){"use strict";function n(){if(a)for(var e in s){var t=s[e],n=a.indexOf(e);if(i(n>-1),!u.plugins[n]){i(t.extractEvents),u.plugins[n]=t;var o=t.eventTypes;for(var c in o)i(r(o[c],t,c))}}}function r(e,t,n){i(!u.eventNameDispatchConfigs.hasOwnProperty(n)),u.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var a in r)if(r.hasOwnProperty(a)){var s=r[a];o(s,t,n)}return!0}return e.registrationName?(o(e.registrationName,t,n),!0):!1}function o(e,t,n){i(!u.registrationNameModules[e]),u.registrationNameModules[e]=t,u.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var i=e("./invariant"),a=null,s={},u={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){i(!a),a=Array.prototype.slice.call(e),n()},injectEventPluginsByName:function(e){var t=!1;for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];s.hasOwnProperty(r)&&s[r]===o||(i(!s[r]),s[r]=o,t=!0)}t&&n()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return u.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=u.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){a=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];u.plugins.length=0;var t=u.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=u.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=u},{"./invariant":131}],20:[function(e,t){"use strict";function n(e){return e===v.topMouseUp||e===v.topTouchEnd||e===v.topTouchCancel}function r(e){return e===v.topMouseMove||e===v.topTouchMove}function o(e){return e===v.topMouseDown||e===v.topTouchStart}function i(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)t(e,n[o],r[o]);else n&&t(e,n,r)}function a(e,t,n){e.currentTarget=h.Mount.getNode(n);var r=t(e,n);return e.currentTarget=null,r}function s(e,t){i(e,t),e._dispatchListeners=null,e._dispatchIDs=null}function u(e){var t=e._dispatchListeners,n=e._dispatchIDs;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}function c(e){var t=u(e);return e._dispatchIDs=null,e._dispatchListeners=null,t}function l(e){var t=e._dispatchListeners,n=e._dispatchIDs;f(!Array.isArray(t));var r=t?t(e,n):null;return e._dispatchListeners=null,e._dispatchIDs=null,r}function p(e){return!!e._dispatchListeners}var d=e("./EventConstants"),f=e("./invariant"),h={Mount:null,injectMount:function(e){h.Mount=e}},v=d.topLevelTypes,m={isEndish:n,isMoveish:r,isStartish:o,executeDirectDispatch:l,executeDispatch:a,executeDispatchesInOrder:s,executeDispatchesInOrderStopAtTrue:c,hasDispatches:p,injection:h,useTouchEvents:!1};t.exports=m},{"./EventConstants":16,"./invariant":131}],21:[function(e,t){"use strict";function n(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return v(e,r)}function r(e,t,r){var o=t?h.bubbled:h.captured,i=n(e,r,o);i&&(r._dispatchListeners=d(r._dispatchListeners,i),r._dispatchIDs=d(r._dispatchIDs,e))}function o(e){e&&e.dispatchConfig.phasedRegistrationNames&&p.injection.getInstanceHandle().traverseTwoPhase(e.dispatchMarker,r,e)}function i(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=v(e,r);o&&(n._dispatchListeners=d(n._dispatchListeners,o),n._dispatchIDs=d(n._dispatchIDs,e))}}function a(e){e&&e.dispatchConfig.registrationName&&i(e.dispatchMarker,null,e)}function s(e){f(e,o)}function u(e,t,n,r){p.injection.getInstanceHandle().traverseEnterLeave(n,r,i,e,t)}function c(e){f(e,a)}var l=e("./EventConstants"),p=e("./EventPluginHub"),d=e("./accumulate"),f=e("./forEachAccumulated"),h=l.PropagationPhases,v=p.getListener,m={accumulateTwoPhaseDispatches:s,accumulateDirectDispatches:c,accumulateEnterLeaveDispatches:u};t.exports=m},{"./EventConstants":16,"./EventPluginHub":18,"./accumulate":103,"./forEachAccumulated":118}],22:[function(e,t){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};t.exports=r},{}],23:[function(e,t){"use strict";var n,r=e("./DOMProperty"),o=e("./ExecutionEnvironment"),i=r.injection.MUST_USE_ATTRIBUTE,a=r.injection.MUST_USE_PROPERTY,s=r.injection.HAS_BOOLEAN_VALUE,u=r.injection.HAS_SIDE_EFFECTS,c=r.injection.HAS_NUMERIC_VALUE,l=r.injection.HAS_POSITIVE_NUMERIC_VALUE,p=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(o.canUseDOM){var d=document.implementation;n=d&&d.hasFeature&&d.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var f={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,accessKey:null,action:null,allowFullScreen:i|s,allowTransparency:i,alt:null,async:s,autoComplete:null,autoPlay:s,cellPadding:null,cellSpacing:null,charSet:i,checked:a|s,className:n?i:a,cols:i|l,colSpan:null,content:null,contentEditable:null,contextMenu:i,controls:a|s,coords:null,crossOrigin:null,data:null,dateTime:i,defer:s,dir:null,disabled:i|s,download:p,draggable:null,encType:null,form:i,formNoValidate:s,frameBorder:i,height:i,hidden:i|s,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:a,label:null,lang:null,list:null,loop:a|s,max:null,maxLength:i,media:i,mediaGroup:null,method:null,min:null,multiple:a|s,muted:a|s,name:null,noValidate:s,open:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:a|s,rel:null,required:s,role:i,rows:i|l,rowSpan:null,sandbox:null,scope:null,scrollLeft:a,scrolling:null,scrollTop:a,seamless:i|s,selected:a|s,shape:null,size:i|l,sizes:i,span:l,spellCheck:null,src:null,srcDoc:a,srcSet:i,start:c,step:null,style:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:a|u,width:i,wmode:i,autoCapitalize:null,autoCorrect:null,itemProp:i,itemScope:i|s,itemType:i,property:null},DOMAttributeNames:{className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",encType:"enctype",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};t.exports=f},{"./DOMProperty":11,"./ExecutionEnvironment":22}],24:[function(e,t){"use strict";var n=e("./ReactLink"),r=e("./ReactStateSetters"),o={linkState:function(e){return new n(this.state[e],r.createStateKeySetter(this,e))}};t.exports=o},{"./ReactLink":63,"./ReactStateSetters":79}],25:[function(e,t){"use strict";function n(e){u(null==e.props.checkedLink||null==e.props.valueLink)}function r(e){n(e),u(null==e.props.value&&null==e.props.onChange)}function o(e){n(e),u(null==e.props.checked&&null==e.props.onChange)}function i(e){this.props.valueLink.requestChange(e.target.value)}function a(e){this.props.checkedLink.requestChange(e.target.checked)}var s=e("./ReactPropTypes"),u=e("./invariant"),c={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},l={Mixin:{propTypes:{value:function(e,t){return!e[t]||c[e.type]||e.onChange||e.readOnly||e.disabled?void 0:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t){return!e[t]||e.onChange||e.readOnly||e.disabled?void 0:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:s.func}},getValue:function(e){return e.props.valueLink?(r(e),e.props.valueLink.value):e.props.value},getChecked:function(e){return e.props.checkedLink?(o(e),e.props.checkedLink.value):e.props.checked},getOnChange:function(e){return e.props.valueLink?(r(e),i):e.props.checkedLink?(o(e),a):e.props.onChange}};t.exports=l},{"./ReactPropTypes":73,"./invariant":131}],26:[function(e,t){"use strict";function n(e){e.remove()}var r=e("./ReactBrowserEventEmitter"),o=e("./accumulate"),i=e("./forEachAccumulated"),a=e("./invariant"),s={trapBubbledEvent:function(e,t){a(this.isMounted());var n=r.trapBubbledEvent(e,t,this.getDOMNode());this._localEventListeners=o(this._localEventListeners,n)},componentWillUnmount:function(){this._localEventListeners&&i(this._localEventListeners,n)}};t.exports=s},{"./ReactBrowserEventEmitter":31,"./accumulate":103,"./forEachAccumulated":118,"./invariant":131}],27:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./emptyFunction"),o=n.topLevelTypes,i={eventTypes:null,extractEvents:function(e,t,n,i){if(e===o.topTouchStart){var a=i.target;a&&!a.onclick&&(a.onclick=r)}}};t.exports=i},{"./EventConstants":16,"./emptyFunction":113}],28:[function(e,t){"use strict";var n=e("./invariant"),r=function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)},o=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},i=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},a=function(e,t,n,r,o){var i=this;if(i.instancePool.length){var a=i.instancePool.pop();return i.call(a,e,t,n,r,o),a}return new i(e,t,n,r,o)},s=function(e){var t=this;n(e instanceof t),e.destructor&&e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},u=10,c=r,l=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||c,n.poolSize||(n.poolSize=u),n.release=s,n},p={addPoolingTo:l,oneArgumentPooler:r,twoArgumentPooler:o,threeArgumentPooler:i,fiveArgumentPooler:a};t.exports=p},{"./invariant":131}],29:[function(e,t){"use strict";function n(e){var t=Array.prototype.slice.call(arguments,1);return e.apply(null,t)}{var r=e("./DOMPropertyOperations"),o=e("./EventPluginUtils"),i=e("./ReactChildren"),a=e("./ReactComponent"),s=e("./ReactCompositeComponent"),u=e("./ReactContext"),c=e("./ReactCurrentOwner"),l=e("./ReactDescriptor"),p=e("./ReactDOM"),d=e("./ReactDOMComponent"),f=e("./ReactDefaultInjection"),h=e("./ReactInstanceHandles"),v=e("./ReactMount"),m=e("./ReactMultiChild"),g=e("./ReactPerf"),y=e("./ReactPropTypes"),C=e("./ReactServerRendering"),E=e("./ReactTextComponent"),R=e("./onlyChild");e("./warning")}f.inject();var M={Children:{map:i.map,forEach:i.forEach,count:i.count,only:R},DOM:p,PropTypes:y,initializeTouchEvents:function(e){o.useTouchEvents=e},createClass:s.createClass,createDescriptor:function(){return n.apply(this,arguments)},createElement:n,constructAndRenderComponent:v.constructAndRenderComponent,constructAndRenderComponentByID:v.constructAndRenderComponentByID,renderComponent:g.measure("React","renderComponent",v.renderComponent),renderComponentToString:C.renderComponentToString,renderComponentToStaticMarkup:C.renderComponentToStaticMarkup,unmountComponentAtNode:v.unmountComponentAtNode,isValidClass:l.isValidFactory,isValidComponent:l.isValidDescriptor,withContext:u.withContext,__internals:{Component:a,CurrentOwner:c,DOMComponent:d,DOMPropertyOperations:r,InstanceHandles:h,Mount:v,MultiChild:m,TextComponent:E}};M.version="0.11.2",t.exports=M},{"./DOMPropertyOperations":12,"./EventPluginUtils":20,"./ReactChildren":34,"./ReactComponent":35,"./ReactCompositeComponent":38,"./ReactContext":39,"./ReactCurrentOwner":40,"./ReactDOM":41,"./ReactDOMComponent":43,"./ReactDefaultInjection":53,"./ReactDescriptor":54,"./ReactInstanceHandles":62,"./ReactMount":65,"./ReactMultiChild":66,"./ReactPerf":69,"./ReactPropTypes":73,"./ReactServerRendering":77,"./ReactTextComponent":80,"./onlyChild":146,"./warning":153}],30:[function(e,t){"use strict";
    19 var n=e("./ReactEmptyComponent"),r=e("./ReactMount"),o=e("./invariant"),i={getDOMNode:function(){return o(this.isMounted()),n.isNullComponentID(this._rootNodeID)?null:r.getNode(this._rootNodeID)}};t.exports=i},{"./ReactEmptyComponent":56,"./ReactMount":65,"./invariant":131}],31:[function(e,t){"use strict";function n(e){return Object.prototype.hasOwnProperty.call(e,h)||(e[h]=d++,l[e[h]]={}),l[e[h]]}var r=e("./EventConstants"),o=e("./EventPluginHub"),i=e("./EventPluginRegistry"),a=e("./ReactEventEmitterMixin"),s=e("./ViewportMetrics"),u=e("./isEventSupported"),c=e("./merge"),l={},p=!1,d=0,f={topBlur:"blur",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topScroll:"scroll",topSelectionChange:"selectionchange",topTextInput:"textInput",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topWheel:"wheel"},h="_reactListenersID"+String(Math.random()).slice(2),v=c(a,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(v.handleTopLevel),v.ReactEventListener=e}},setEnabled:function(e){v.ReactEventListener&&v.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!v.ReactEventListener||!v.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var o=t,a=n(o),s=i.registrationNameDependencies[e],c=r.topLevelTypes,l=0,p=s.length;p>l;l++){var d=s[l];a.hasOwnProperty(d)&&a[d]||(d===c.topWheel?u("wheel")?v.ReactEventListener.trapBubbledEvent(c.topWheel,"wheel",o):u("mousewheel")?v.ReactEventListener.trapBubbledEvent(c.topWheel,"mousewheel",o):v.ReactEventListener.trapBubbledEvent(c.topWheel,"DOMMouseScroll",o):d===c.topScroll?u("scroll",!0)?v.ReactEventListener.trapCapturedEvent(c.topScroll,"scroll",o):v.ReactEventListener.trapBubbledEvent(c.topScroll,"scroll",v.ReactEventListener.WINDOW_HANDLE):d===c.topFocus||d===c.topBlur?(u("focus",!0)?(v.ReactEventListener.trapCapturedEvent(c.topFocus,"focus",o),v.ReactEventListener.trapCapturedEvent(c.topBlur,"blur",o)):u("focusin")&&(v.ReactEventListener.trapBubbledEvent(c.topFocus,"focusin",o),v.ReactEventListener.trapBubbledEvent(c.topBlur,"focusout",o)),a[c.topBlur]=!0,a[c.topFocus]=!0):f.hasOwnProperty(d)&&v.ReactEventListener.trapBubbledEvent(d,f[d],o),a[d]=!0)}},trapBubbledEvent:function(e,t,n){return v.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return v.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!p){var e=s.refreshScrollValues;v.ReactEventListener.monitorScrollValue(e),p=!0}},eventNameDispatchConfigs:o.eventNameDispatchConfigs,registrationNameModules:o.registrationNameModules,putListener:o.putListener,getListener:o.getListener,deleteListener:o.deleteListener,deleteAllListeners:o.deleteAllListeners});t.exports=v},{"./EventConstants":16,"./EventPluginHub":18,"./EventPluginRegistry":19,"./ReactEventEmitterMixin":58,"./ViewportMetrics":102,"./isEventSupported":132,"./merge":141}],32:[function(e,t){"use strict";var n=e("./React"),r=e("./ReactTransitionGroup"),o=e("./ReactCSSTransitionGroupChild"),i=n.createClass({displayName:"ReactCSSTransitionGroup",propTypes:{transitionName:n.PropTypes.string.isRequired,transitionEnter:n.PropTypes.bool,transitionLeave:n.PropTypes.bool},getDefaultProps:function(){return{transitionEnter:!0,transitionLeave:!0}},_wrapChild:function(e){return o({name:this.props.transitionName,enter:this.props.transitionEnter,leave:this.props.transitionLeave},e)},render:function(){return this.transferPropsTo(r({childFactory:this._wrapChild},this.props.children))}});t.exports=i},{"./React":29,"./ReactCSSTransitionGroupChild":33,"./ReactTransitionGroup":83}],33:[function(e,t){"use strict";var n=e("./React"),r=e("./CSSCore"),o=e("./ReactTransitionEvents"),i=e("./onlyChild"),a=17,s=n.createClass({displayName:"ReactCSSTransitionGroupChild",transition:function(e,t){var n=this.getDOMNode(),i=this.props.name+"-"+e,a=i+"-active",s=function(){r.removeClass(n,i),r.removeClass(n,a),o.removeEndEventListener(n,s),t&&t()};o.addEndEventListener(n,s),r.addClass(n,i),this.queueClass(a)},queueClass:function(e){this.classNameQueue.push(e),this.timeout||(this.timeout=setTimeout(this.flushClassNameQueue,a))},flushClassNameQueue:function(){this.isMounted()&&this.classNameQueue.forEach(r.addClass.bind(r,this.getDOMNode())),this.classNameQueue.length=0,this.timeout=null},componentWillMount:function(){this.classNameQueue=[]},componentWillUnmount:function(){this.timeout&&clearTimeout(this.timeout)},componentWillEnter:function(e){this.props.enter?this.transition("enter",e):e()},componentWillLeave:function(e){this.props.leave?this.transition("leave",e):e()},render:function(){return i(this.props.children)}});t.exports=s},{"./CSSCore":3,"./React":29,"./ReactTransitionEvents":82,"./onlyChild":146}],34:[function(e,t){"use strict";function n(e,t){this.forEachFunction=e,this.forEachContext=t}function r(e,t,n,r){var o=e;o.forEachFunction.call(o.forEachContext,t,r)}function o(e,t,o){if(null==e)return e;var i=n.getPooled(t,o);p(e,r,i),n.release(i)}function i(e,t,n){this.mapResult=e,this.mapFunction=t,this.mapContext=n}function a(e,t,n,r){var o=e,i=o.mapResult,a=!i.hasOwnProperty(n);if(a){var s=o.mapFunction.call(o.mapContext,t,r);i[n]=s}}function s(e,t,n){if(null==e)return e;var r={},o=i.getPooled(r,t,n);return p(e,a,o),i.release(o),r}function u(){return null}function c(e){return p(e,u,null)}var l=e("./PooledClass"),p=e("./traverseAllChildren"),d=(e("./warning"),l.twoArgumentPooler),f=l.threeArgumentPooler;l.addPoolingTo(n,d),l.addPoolingTo(i,f);var h={forEach:o,map:s,count:c};t.exports=h},{"./PooledClass":28,"./traverseAllChildren":151,"./warning":153}],35:[function(e,t){"use strict";var n=e("./ReactDescriptor"),r=e("./ReactOwner"),o=e("./ReactUpdates"),i=e("./invariant"),a=e("./keyMirror"),s=e("./merge"),u=a({MOUNTED:null,UNMOUNTED:null}),c=!1,l=null,p=null,d={injection:{injectEnvironment:function(e){i(!c),p=e.mountImageIntoNode,l=e.unmountIDFromEnvironment,d.BackendIDOperations=e.BackendIDOperations,c=!0}},LifeCycle:u,BackendIDOperations:null,Mixin:{isMounted:function(){return this._lifeCycleState===u.MOUNTED},setProps:function(e,t){var n=this._pendingDescriptor||this._descriptor;this.replaceProps(s(n.props,e),t)},replaceProps:function(e,t){i(this.isMounted()),i(0===this._mountDepth),this._pendingDescriptor=n.cloneAndReplaceProps(this._pendingDescriptor||this._descriptor,e),o.enqueueUpdate(this,t)},_setPropsInternal:function(e,t){var r=this._pendingDescriptor||this._descriptor;this._pendingDescriptor=n.cloneAndReplaceProps(r,s(r.props,e)),o.enqueueUpdate(this,t)},construct:function(e){this.props=e.props,this._owner=e._owner,this._lifeCycleState=u.UNMOUNTED,this._pendingCallbacks=null,this._descriptor=e,this._pendingDescriptor=null},mountComponent:function(e,t,n){i(!this.isMounted());var o=this._descriptor.props;if(null!=o.ref){var a=this._descriptor._owner;r.addComponentAsRefTo(this,o.ref,a)}this._rootNodeID=e,this._lifeCycleState=u.MOUNTED,this._mountDepth=n},unmountComponent:function(){i(this.isMounted());var e=this.props;null!=e.ref&&r.removeComponentAsRefFrom(this,e.ref,this._owner),l(this._rootNodeID),this._rootNodeID=null,this._lifeCycleState=u.UNMOUNTED},receiveComponent:function(e,t){i(this.isMounted()),this._pendingDescriptor=e,this.performUpdateIfNecessary(t)},performUpdateIfNecessary:function(e){if(null!=this._pendingDescriptor){var t=this._descriptor,n=this._pendingDescriptor;this._descriptor=n,this.props=n.props,this._owner=n._owner,this._pendingDescriptor=null,this.updateComponent(e,t)}},updateComponent:function(e,t){var n=this._descriptor;(n._owner!==t._owner||n.props.ref!==t.props.ref)&&(null!=t.props.ref&&r.removeComponentAsRefFrom(this,t.props.ref,t._owner),null!=n.props.ref&&r.addComponentAsRefTo(this,n.props.ref,n._owner))},mountComponentIntoNode:function(e,t,n){var r=o.ReactReconcileTransaction.getPooled();r.perform(this._mountComponentIntoNode,this,e,t,r,n),o.ReactReconcileTransaction.release(r)},_mountComponentIntoNode:function(e,t,n,r){var o=this.mountComponent(e,n,0);p(o,t,r)},isOwnedBy:function(e){return this._owner===e},getSiblingByRef:function(e){var t=this._owner;return t&&t.refs?t.refs[e]:null}}};t.exports=d},{"./ReactDescriptor":54,"./ReactOwner":68,"./ReactUpdates":84,"./invariant":131,"./keyMirror":137,"./merge":141}],36:[function(e,t){"use strict";var n=e("./ReactDOMIDOperations"),r=e("./ReactMarkupChecksum"),o=e("./ReactMount"),i=e("./ReactPerf"),a=e("./ReactReconcileTransaction"),s=e("./getReactRootElementInContainer"),u=e("./invariant"),c=e("./setInnerHTML"),l=1,p=9,d={ReactReconcileTransaction:a,BackendIDOperations:n,unmountIDFromEnvironment:function(e){o.purgeID(e)},mountImageIntoNode:i.measure("ReactComponentBrowserEnvironment","mountImageIntoNode",function(e,t,n){if(u(t&&(t.nodeType===l||t.nodeType===p)),n){if(r.canReuseMarkup(e,s(t)))return;u(t.nodeType!==p)}u(t.nodeType!==p),c(t,e)})};t.exports=d},{"./ReactDOMIDOperations":45,"./ReactMarkupChecksum":64,"./ReactMount":65,"./ReactPerf":69,"./ReactReconcileTransaction":75,"./getReactRootElementInContainer":125,"./invariant":131,"./setInnerHTML":147}],37:[function(e,t){"use strict";var n=e("./shallowEqual"),r={shouldComponentUpdate:function(e,t){return!n(this.props,e)||!n(this.state,t)}};t.exports=r},{"./shallowEqual":148}],38:[function(e,t){"use strict";function n(e){var t=e._owner||null;return t&&t.constructor&&t.constructor.displayName?" Check the render method of `"+t.constructor.displayName+"`.":""}function r(e,t){for(var n in t)t.hasOwnProperty(n)&&D("function"==typeof t[n])}function o(e,t){var n=_.hasOwnProperty(t)?_[t]:null;k.hasOwnProperty(t)&&D(n===S.OVERRIDE_BASE),e.hasOwnProperty(t)&&D(n===S.DEFINE_MANY||n===S.DEFINE_MANY_MERGED)}function i(e){var t=e._compositeLifeCycleState;D(e.isMounted()||t===N.MOUNTING),D(t!==N.RECEIVING_STATE),D(t!==N.UNMOUNTING)}function a(e,t){D(!h.isValidFactory(t)),D(!h.isValidDescriptor(t));var n=e.prototype;for(var r in t){var i=t[r];if(t.hasOwnProperty(r))if(o(n,r),I.hasOwnProperty(r))I[r](e,i);else{var a=_.hasOwnProperty(r),s=n.hasOwnProperty(r),u=i&&i.__reactDontBind,p="function"==typeof i,d=p&&!a&&!s&&!u;if(d)n.__reactAutoBindMap||(n.__reactAutoBindMap={}),n.__reactAutoBindMap[r]=i,n[r]=i;else if(s){var f=_[r];D(a&&(f===S.DEFINE_MANY_MERGED||f===S.DEFINE_MANY)),f===S.DEFINE_MANY_MERGED?n[r]=c(n[r],i):f===S.DEFINE_MANY&&(n[r]=l(n[r],i))}else n[r]=i}}}function s(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in e,i=r;if(o){var a=e[n],s=typeof a,u=typeof r;D("function"===s&&"function"===u),i=l(a,r)}e[n]=i}}}function u(e,t){return D(e&&t&&"object"==typeof e&&"object"==typeof t),P(t,function(t,n){D(void 0===e[n]),e[n]=t}),e}function c(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);return null==n?r:null==r?n:u(n,r)}}function l(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}var p=e("./ReactComponent"),d=e("./ReactContext"),f=e("./ReactCurrentOwner"),h=e("./ReactDescriptor"),v=(e("./ReactDescriptorValidator"),e("./ReactEmptyComponent")),m=e("./ReactErrorUtils"),g=e("./ReactOwner"),y=e("./ReactPerf"),C=e("./ReactPropTransferer"),E=e("./ReactPropTypeLocations"),R=(e("./ReactPropTypeLocationNames"),e("./ReactUpdates")),M=e("./instantiateReactComponent"),D=e("./invariant"),x=e("./keyMirror"),b=e("./merge"),O=e("./mixInto"),P=(e("./monitorCodeUse"),e("./mapObject")),T=e("./shouldUpdateReactComponent"),S=(e("./warning"),x({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null})),w=[],_={mixins:S.DEFINE_MANY,statics:S.DEFINE_MANY,propTypes:S.DEFINE_MANY,contextTypes:S.DEFINE_MANY,childContextTypes:S.DEFINE_MANY,getDefaultProps:S.DEFINE_MANY_MERGED,getInitialState:S.DEFINE_MANY_MERGED,getChildContext:S.DEFINE_MANY_MERGED,render:S.DEFINE_ONCE,componentWillMount:S.DEFINE_MANY,componentDidMount:S.DEFINE_MANY,componentWillReceiveProps:S.DEFINE_MANY,shouldComponentUpdate:S.DEFINE_ONCE,componentWillUpdate:S.DEFINE_MANY,componentDidUpdate:S.DEFINE_MANY,componentWillUnmount:S.DEFINE_MANY,updateComponent:S.OVERRIDE_BASE},I={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)a(e,t[n])},childContextTypes:function(e,t){r(e,t,E.childContext),e.childContextTypes=b(e.childContextTypes,t)},contextTypes:function(e,t){r(e,t,E.context),e.contextTypes=b(e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps=e.getDefaultProps?c(e.getDefaultProps,t):t},propTypes:function(e,t){r(e,t,E.prop),e.propTypes=b(e.propTypes,t)},statics:function(e,t){s(e,t)}},N=x({MOUNTING:null,UNMOUNTING:null,RECEIVING_PROPS:null,RECEIVING_STATE:null}),k={construct:function(){p.Mixin.construct.apply(this,arguments),g.Mixin.construct.apply(this,arguments),this.state=null,this._pendingState=null,this.context=null,this._compositeLifeCycleState=null},isMounted:function(){return p.Mixin.isMounted.call(this)&&this._compositeLifeCycleState!==N.MOUNTING},mountComponent:y.measure("ReactCompositeComponent","mountComponent",function(e,t,n){p.Mixin.mountComponent.call(this,e,t,n),this._compositeLifeCycleState=N.MOUNTING,this.__reactAutoBindMap&&this._bindAutoBindMethods(),this.context=this._processContext(this._descriptor._context),this.props=this._processProps(this.props),this.state=this.getInitialState?this.getInitialState():null,D("object"==typeof this.state&&!Array.isArray(this.state)),this._pendingState=null,this._pendingForceUpdate=!1,this.componentWillMount&&(this.componentWillMount(),this._pendingState&&(this.state=this._pendingState,this._pendingState=null)),this._renderedComponent=M(this._renderValidatedComponent()),this._compositeLifeCycleState=null;var r=this._renderedComponent.mountComponent(e,t,n+1);return this.componentDidMount&&t.getReactMountReady().enqueue(this.componentDidMount,this),r}),unmountComponent:function(){this._compositeLifeCycleState=N.UNMOUNTING,this.componentWillUnmount&&this.componentWillUnmount(),this._compositeLifeCycleState=null,this._renderedComponent.unmountComponent(),this._renderedComponent=null,p.Mixin.unmountComponent.call(this)},setState:function(e,t){D("object"==typeof e||null==e),this.replaceState(b(this._pendingState||this.state,e),t)},replaceState:function(e,t){i(this),this._pendingState=e,this._compositeLifeCycleState!==N.MOUNTING&&R.enqueueUpdate(this,t)},_processContext:function(e){var t=null,n=this.constructor.contextTypes;if(n){t={};for(var r in n)t[r]=e[r]}return t},_processChildContext:function(e){var t=this.getChildContext&&this.getChildContext();if(this.constructor.displayName||"ReactCompositeComponent",t){D("object"==typeof this.constructor.childContextTypes);for(var n in t)D(n in this.constructor.childContextTypes);return b(e,t)}return e},_processProps:function(e){var t,n=this.constructor.defaultProps;if(n){t=b(e);for(var r in n)"undefined"==typeof t[r]&&(t[r]=n[r])}else t=e;return t},_checkPropTypes:function(e,t,r){var o=this.constructor.displayName;for(var i in e)if(e.hasOwnProperty(i)){var a=e[i](t,i,o,r);a instanceof Error&&n(this)}},performUpdateIfNecessary:function(e){var t=this._compositeLifeCycleState;if(t!==N.MOUNTING&&t!==N.RECEIVING_PROPS&&(null!=this._pendingDescriptor||null!=this._pendingState||this._pendingForceUpdate)){var n=this.context,r=this.props,o=this._descriptor;null!=this._pendingDescriptor&&(o=this._pendingDescriptor,n=this._processContext(o._context),r=this._processProps(o.props),this._pendingDescriptor=null,this._compositeLifeCycleState=N.RECEIVING_PROPS,this.componentWillReceiveProps&&this.componentWillReceiveProps(r,n)),this._compositeLifeCycleState=N.RECEIVING_STATE;var i=this._pendingState||this.state;this._pendingState=null;try{var a=this._pendingForceUpdate||!this.shouldComponentUpdate||this.shouldComponentUpdate(r,i,n);a?(this._pendingForceUpdate=!1,this._performComponentUpdate(o,r,i,n,e)):(this._descriptor=o,this.props=r,this.state=i,this.context=n,this._owner=o._owner)}finally{this._compositeLifeCycleState=null}}},_performComponentUpdate:function(e,t,n,r,o){var i=this._descriptor,a=this.props,s=this.state,u=this.context;this.componentWillUpdate&&this.componentWillUpdate(t,n,r),this._descriptor=e,this.props=t,this.state=n,this.context=r,this._owner=e._owner,this.updateComponent(o,i),this.componentDidUpdate&&o.getReactMountReady().enqueue(this.componentDidUpdate.bind(this,a,s,u),this)},receiveComponent:function(e,t){(e!==this._descriptor||null==e._owner)&&p.Mixin.receiveComponent.call(this,e,t)},updateComponent:y.measure("ReactCompositeComponent","updateComponent",function(e,t){p.Mixin.updateComponent.call(this,e,t);var n=this._renderedComponent,r=n._descriptor,o=this._renderValidatedComponent();if(T(r,o))n.receiveComponent(o,e);else{var i=this._rootNodeID,a=n._rootNodeID;n.unmountComponent(),this._renderedComponent=M(o);var s=this._renderedComponent.mountComponent(i,e,this._mountDepth+1);p.BackendIDOperations.dangerouslyReplaceNodeWithMarkupByID(a,s)}}),forceUpdate:function(e){var t=this._compositeLifeCycleState;D(this.isMounted()||t===N.MOUNTING),D(t!==N.RECEIVING_STATE&&t!==N.UNMOUNTING),this._pendingForceUpdate=!0,R.enqueueUpdate(this,e)},_renderValidatedComponent:y.measure("ReactCompositeComponent","_renderValidatedComponent",function(){var e,t=d.current;d.current=this._processChildContext(this._descriptor._context),f.current=this;try{e=this.render(),null===e||e===!1?(e=v.getEmptyComponent(),v.registerNullComponentID(this._rootNodeID)):v.deregisterNullComponentID(this._rootNodeID)}finally{d.current=t,f.current=null}return D(h.isValidDescriptor(e)),e}),_bindAutoBindMethods:function(){for(var e in this.__reactAutoBindMap)if(this.__reactAutoBindMap.hasOwnProperty(e)){var t=this.__reactAutoBindMap[e];this[e]=this._bindAutoBindMethod(m.guard(t,this.constructor.displayName+"."+e))}},_bindAutoBindMethod:function(e){var t=this,n=function(){return e.apply(t,arguments)};return n}},A=function(){};O(A,p.Mixin),O(A,g.Mixin),O(A,C.Mixin),O(A,k);var L={LifeCycle:N,Base:A,createClass:function(e){var t=function(e,t){this.construct(e,t)};t.prototype=new A,t.prototype.constructor=t,w.forEach(a.bind(null,t)),a(t,e),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),D(t.prototype.render);for(var n in _)t.prototype[n]||(t.prototype[n]=null);var r=h.createFactory(t);return r},injection:{injectMixin:function(e){w.push(e)}}};t.exports=L},{"./ReactComponent":35,"./ReactContext":39,"./ReactCurrentOwner":40,"./ReactDescriptor":54,"./ReactDescriptorValidator":55,"./ReactEmptyComponent":56,"./ReactErrorUtils":57,"./ReactOwner":68,"./ReactPerf":69,"./ReactPropTransferer":70,"./ReactPropTypeLocationNames":71,"./ReactPropTypeLocations":72,"./ReactUpdates":84,"./instantiateReactComponent":130,"./invariant":131,"./keyMirror":137,"./mapObject":139,"./merge":141,"./mixInto":144,"./monitorCodeUse":145,"./shouldUpdateReactComponent":149,"./warning":153}],39:[function(e,t){"use strict";var n=e("./merge"),r={current:{},withContext:function(e,t){var o,i=r.current;r.current=n(i,e);try{o=t()}finally{r.current=i}return o}};t.exports=r},{"./merge":141}],40:[function(e,t){"use strict";var n={current:null};t.exports=n},{}],41:[function(e,t){"use strict";function n(e,t){var n=function(e){this.construct(e)};n.prototype=new o(t,e),n.prototype.constructor=n,n.displayName=t;var i=r.createFactory(n);return i}var r=e("./ReactDescriptor"),o=(e("./ReactDescriptorValidator"),e("./ReactDOMComponent")),i=e("./mergeInto"),a=e("./mapObject"),s=a({a:!1,abbr:!1,address:!1,area:!0,article:!1,aside:!1,audio:!1,b:!1,base:!0,bdi:!1,bdo:!1,big:!1,blockquote:!1,body:!1,br:!0,button:!1,canvas:!1,caption:!1,cite:!1,code:!1,col:!0,colgroup:!1,data:!1,datalist:!1,dd:!1,del:!1,details:!1,dfn:!1,dialog:!1,div:!1,dl:!1,dt:!1,em:!1,embed:!0,fieldset:!1,figcaption:!1,figure:!1,footer:!1,form:!1,h1:!1,h2:!1,h3:!1,h4:!1,h5:!1,h6:!1,head:!1,header:!1,hr:!0,html:!1,i:!1,iframe:!1,img:!0,input:!0,ins:!1,kbd:!1,keygen:!0,label:!1,legend:!1,li:!1,link:!0,main:!1,map:!1,mark:!1,menu:!1,menuitem:!1,meta:!0,meter:!1,nav:!1,noscript:!1,object:!1,ol:!1,optgroup:!1,option:!1,output:!1,p:!1,param:!0,picture:!1,pre:!1,progress:!1,q:!1,rp:!1,rt:!1,ruby:!1,s:!1,samp:!1,script:!1,section:!1,select:!1,small:!1,source:!0,span:!1,strong:!1,style:!1,sub:!1,summary:!1,sup:!1,table:!1,tbody:!1,td:!1,textarea:!1,tfoot:!1,th:!1,thead:!1,time:!1,title:!1,tr:!1,track:!0,u:!1,ul:!1,"var":!1,video:!1,wbr:!0,circle:!1,defs:!1,ellipse:!1,g:!1,line:!1,linearGradient:!1,mask:!1,path:!1,pattern:!1,polygon:!1,polyline:!1,radialGradient:!1,rect:!1,stop:!1,svg:!1,text:!1,tspan:!1},n),u={injectComponentClasses:function(e){i(s,e)}};s.injection=u,t.exports=s},{"./ReactDOMComponent":43,"./ReactDescriptor":54,"./ReactDescriptorValidator":55,"./mapObject":139,"./mergeInto":143}],42:[function(e,t){"use strict";var n=e("./AutoFocusMixin"),r=e("./ReactBrowserComponentMixin"),o=e("./ReactCompositeComponent"),i=e("./ReactDOM"),a=e("./keyMirror"),s=i.button,u=a({onClick:!0,onDoubleClick:!0,onMouseDown:!0,onMouseMove:!0,onMouseUp:!0,onClickCapture:!0,onDoubleClickCapture:!0,onMouseDownCapture:!0,onMouseMoveCapture:!0,onMouseUpCapture:!0}),c=o.createClass({displayName:"ReactDOMButton",mixins:[n,r],render:function(){var e={};for(var t in this.props)!this.props.hasOwnProperty(t)||this.props.disabled&&u[t]||(e[t]=this.props[t]);return s(e,this.props.children)}});t.exports=c},{"./AutoFocusMixin":1,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./keyMirror":137}],43:[function(e,t){"use strict";function n(e){e&&(v(null==e.children||null==e.dangerouslySetInnerHTML),v(null==e.style||"object"==typeof e.style))}function r(e,t,n,r){var o=p.findReactContainerForID(e);if(o){var i=o.nodeType===x?o.ownerDocument:o;E(t,i)}r.getPutListenerQueue().enqueuePutListener(e,t,n)}function o(e,t){this._tagOpen="<"+e,this._tagClose=t?"":"</"+e+">",this.tagName=e.toUpperCase()}var i=e("./CSSPropertyOperations"),a=e("./DOMProperty"),s=e("./DOMPropertyOperations"),u=e("./ReactBrowserComponentMixin"),c=e("./ReactComponent"),l=e("./ReactBrowserEventEmitter"),p=e("./ReactMount"),d=e("./ReactMultiChild"),f=e("./ReactPerf"),h=e("./escapeTextForBrowser"),v=e("./invariant"),m=e("./keyOf"),g=e("./merge"),y=e("./mixInto"),C=l.deleteListener,E=l.listenTo,R=l.registrationNameModules,M={string:!0,number:!0},D=m({style:null}),x=1;o.Mixin={mountComponent:f.measure("ReactDOMComponent","mountComponent",function(e,t,r){return c.Mixin.mountComponent.call(this,e,t,r),n(this.props),this._createOpenTagMarkupAndPutListeners(t)+this._createContentMarkup(t)+this._tagClose}),_createOpenTagMarkupAndPutListeners:function(e){var t=this.props,n=this._tagOpen;for(var o in t)if(t.hasOwnProperty(o)){var a=t[o];if(null!=a)if(R.hasOwnProperty(o))r(this._rootNodeID,o,a,e);else{o===D&&(a&&(a=t.style=g(t.style)),a=i.createMarkupForStyles(a));var u=s.createMarkupForProperty(o,a);u&&(n+=" "+u)}}if(e.renderToStaticMarkup)return n+">";var c=s.createMarkupForID(this._rootNodeID);return n+" "+c+">"},_createContentMarkup:function(e){var t=this.props.dangerouslySetInnerHTML;if(null!=t){if(null!=t.__html)return t.__html}else{var n=M[typeof this.props.children]?this.props.children:null,r=null!=n?null:this.props.children;if(null!=n)return h(n);if(null!=r){var o=this.mountChildren(r,e);return o.join("")}}return""},receiveComponent:function(e,t){(e!==this._descriptor||null==e._owner)&&c.Mixin.receiveComponent.call(this,e,t)},updateComponent:f.measure("ReactDOMComponent","updateComponent",function(e,t){n(this._descriptor.props),c.Mixin.updateComponent.call(this,e,t),this._updateDOMProperties(t.props,e),this._updateDOMChildren(t.props,e)}),_updateDOMProperties:function(e,t){var n,o,i,s=this.props;for(n in e)if(!s.hasOwnProperty(n)&&e.hasOwnProperty(n))if(n===D){var u=e[n];for(o in u)u.hasOwnProperty(o)&&(i=i||{},i[o]="")}else R.hasOwnProperty(n)?C(this._rootNodeID,n):(a.isStandardName[n]||a.isCustomAttribute(n))&&c.BackendIDOperations.deletePropertyByID(this._rootNodeID,n);for(n in s){var l=s[n],p=e[n];if(s.hasOwnProperty(n)&&l!==p)if(n===D)if(l&&(l=s.style=g(l)),p){for(o in p)!p.hasOwnProperty(o)||l&&l.hasOwnProperty(o)||(i=i||{},i[o]="");for(o in l)l.hasOwnProperty(o)&&p[o]!==l[o]&&(i=i||{},i[o]=l[o])}else i=l;else R.hasOwnProperty(n)?r(this._rootNodeID,n,l,t):(a.isStandardName[n]||a.isCustomAttribute(n))&&c.BackendIDOperations.updatePropertyByID(this._rootNodeID,n,l)}i&&c.BackendIDOperations.updateStylesByID(this._rootNodeID,i)},_updateDOMChildren:function(e,t){var n=this.props,r=M[typeof e.children]?e.children:null,o=M[typeof n.children]?n.children:null,i=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,a=n.dangerouslySetInnerHTML&&n.dangerouslySetInnerHTML.__html,s=null!=r?null:e.children,u=null!=o?null:n.children,l=null!=r||null!=i,p=null!=o||null!=a;null!=s&&null==u?this.updateChildren(null,t):l&&!p&&this.updateTextContent(""),null!=o?r!==o&&this.updateTextContent(""+o):null!=a?i!==a&&c.BackendIDOperations.updateInnerHTMLByID(this._rootNodeID,a):null!=u&&this.updateChildren(u,t)},unmountComponent:function(){this.unmountChildren(),l.deleteAllListeners(this._rootNodeID),c.Mixin.unmountComponent.call(this)}},y(o,c.Mixin),y(o,o.Mixin),y(o,d.Mixin),y(o,u),t.exports=o},{"./CSSPropertyOperations":5,"./DOMProperty":11,"./DOMPropertyOperations":12,"./ReactBrowserComponentMixin":30,"./ReactBrowserEventEmitter":31,"./ReactComponent":35,"./ReactMount":65,"./ReactMultiChild":66,"./ReactPerf":69,"./escapeTextForBrowser":115,"./invariant":131,"./keyOf":138,"./merge":141,"./mixInto":144}],44:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./LocalEventTrapMixin"),o=e("./ReactBrowserComponentMixin"),i=e("./ReactCompositeComponent"),a=e("./ReactDOM"),s=a.form,u=i.createClass({displayName:"ReactDOMForm",mixins:[o,r],render:function(){return this.transferPropsTo(s(null,this.props.children))},componentDidMount:function(){this.trapBubbledEvent(n.topLevelTypes.topReset,"reset"),this.trapBubbledEvent(n.topLevelTypes.topSubmit,"submit")}});t.exports=u},{"./EventConstants":16,"./LocalEventTrapMixin":26,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41}],45:[function(e,t){"use strict";var n=e("./CSSPropertyOperations"),r=e("./DOMChildrenOperations"),o=e("./DOMPropertyOperations"),i=e("./ReactMount"),a=e("./ReactPerf"),s=e("./invariant"),u=e("./setInnerHTML"),c={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},l={updatePropertyByID:a.measure("ReactDOMIDOperations","updatePropertyByID",function(e,t,n){var r=i.getNode(e);s(!c.hasOwnProperty(t)),null!=n?o.setValueForProperty(r,t,n):o.deleteValueForProperty(r,t)}),deletePropertyByID:a.measure("ReactDOMIDOperations","deletePropertyByID",function(e,t,n){var r=i.getNode(e);s(!c.hasOwnProperty(t)),o.deleteValueForProperty(r,t,n)}),updateStylesByID:a.measure("ReactDOMIDOperations","updateStylesByID",function(e,t){var r=i.getNode(e);n.setValueForStyles(r,t)}),updateInnerHTMLByID:a.measure("ReactDOMIDOperations","updateInnerHTMLByID",function(e,t){var n=i.getNode(e);u(n,t)}),updateTextContentByID:a.measure("ReactDOMIDOperations","updateTextContentByID",function(e,t){var n=i.getNode(e);r.updateTextContent(n,t)}),dangerouslyReplaceNodeWithMarkupByID:a.measure("ReactDOMIDOperations","dangerouslyReplaceNodeWithMarkupByID",function(e,t){var n=i.getNode(e);r.dangerouslyReplaceNodeWithMarkup(n,t)}),dangerouslyProcessChildrenUpdates:a.measure("ReactDOMIDOperations","dangerouslyProcessChildrenUpdates",function(e,t){for(var n=0;n<e.length;n++)e[n].parentNode=i.getNode(e[n].parentID);r.processUpdates(e,t)})};t.exports=l},{"./CSSPropertyOperations":5,"./DOMChildrenOperations":10,"./DOMPropertyOperations":12,"./ReactMount":65,"./ReactPerf":69,"./invariant":131,"./setInnerHTML":147}],46:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./LocalEventTrapMixin"),o=e("./ReactBrowserComponentMixin"),i=e("./ReactCompositeComponent"),a=e("./ReactDOM"),s=a.img,u=i.createClass({displayName:"ReactDOMImg",tagName:"IMG",mixins:[o,r],render:function(){return s(this.props)},componentDidMount:function(){this.trapBubbledEvent(n.topLevelTypes.topLoad,"load"),this.trapBubbledEvent(n.topLevelTypes.topError,"error")}});t.exports=u},{"./EventConstants":16,"./LocalEventTrapMixin":26,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41}],47:[function(e,t){"use strict";var n=e("./AutoFocusMixin"),r=e("./DOMPropertyOperations"),o=e("./LinkedValueUtils"),i=e("./ReactBrowserComponentMixin"),a=e("./ReactCompositeComponent"),s=e("./ReactDOM"),u=e("./ReactMount"),c=e("./invariant"),l=e("./merge"),p=s.input,d={},f=a.createClass({displayName:"ReactDOMInput",mixins:[n,o.Mixin,i],getInitialState:function(){var e=this.props.defaultValue;return{checked:this.props.defaultChecked||!1,value:null!=e?e:null}},shouldComponentUpdate:function(){return!this._isChanging},render:function(){var e=l(this.props);e.defaultChecked=null,e.defaultValue=null;var t=o.getValue(this);e.value=null!=t?t:this.state.value;var n=o.getChecked(this);return e.checked=null!=n?n:this.state.checked,e.onChange=this._handleChange,p(e,this.props.children)},componentDidMount:function(){var e=u.getID(this.getDOMNode());d[e]=this},componentWillUnmount:function(){var e=this.getDOMNode(),t=u.getID(e);delete d[t]},componentDidUpdate:function(){var e=this.getDOMNode();null!=this.props.checked&&r.setValueForProperty(e,"checked",this.props.checked||!1);var t=o.getValue(this);null!=t&&r.setValueForProperty(e,"value",""+t)},_handleChange:function(e){var t,n=o.getOnChange(this);n&&(this._isChanging=!0,t=n.call(this,e),this._isChanging=!1),this.setState({checked:e.target.checked,value:e.target.value});var r=this.props.name;if("radio"===this.props.type&&null!=r){for(var i=this.getDOMNode(),a=i;a.parentNode;)a=a.parentNode;for(var s=a.querySelectorAll("input[name="+JSON.stringify(""+r)+'][type="radio"]'),l=0,p=s.length;p>l;l++){var f=s[l];if(f!==i&&f.form===i.form){var h=u.getID(f);c(h);var v=d[h];c(v),v.setState({checked:!1})}}}return t}});t.exports=f},{"./AutoFocusMixin":1,"./DOMPropertyOperations":12,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./ReactMount":65,"./invariant":131,"./merge":141}],48:[function(e,t){"use strict";var n=e("./ReactBrowserComponentMixin"),r=e("./ReactCompositeComponent"),o=e("./ReactDOM"),i=(e("./warning"),o.option),a=r.createClass({displayName:"ReactDOMOption",mixins:[n],componentWillMount:function(){},render:function(){return i(this.props,this.props.children)}});t.exports=a},{"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./warning":153}],49:[function(e,t){"use strict";function n(e,t){if(null!=e[t])if(e.multiple){if(!Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to <select> must be an array if `multiple` is true.")}else if(Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to <select> must be a scalar value if `multiple` is false.")}function r(e,t){var n,r,o,i=e.props.multiple,a=null!=t?t:e.state.value,s=e.getDOMNode().options;if(i)for(n={},r=0,o=a.length;o>r;++r)n[""+a[r]]=!0;else n=""+a;for(r=0,o=s.length;o>r;r++){var u=i?n.hasOwnProperty(s[r].value):s[r].value===n;u!==s[r].selected&&(s[r].selected=u)}}var o=e("./AutoFocusMixin"),i=e("./LinkedValueUtils"),a=e("./ReactBrowserComponentMixin"),s=e("./ReactCompositeComponent"),u=e("./ReactDOM"),c=e("./merge"),l=u.select,p=s.createClass({displayName:"ReactDOMSelect",mixins:[o,i.Mixin,a],propTypes:{defaultValue:n,value:n},getInitialState:function(){return{value:this.props.defaultValue||(this.props.multiple?[]:"")}
    20 },componentWillReceiveProps:function(e){!this.props.multiple&&e.multiple?this.setState({value:[this.state.value]}):this.props.multiple&&!e.multiple&&this.setState({value:this.state.value[0]})},shouldComponentUpdate:function(){return!this._isChanging},render:function(){var e=c(this.props);return e.onChange=this._handleChange,e.value=null,l(e,this.props.children)},componentDidMount:function(){r(this,i.getValue(this))},componentDidUpdate:function(e){var t=i.getValue(this),n=!!e.multiple,o=!!this.props.multiple;(null!=t||n!==o)&&r(this,t)},_handleChange:function(e){var t,n=i.getOnChange(this);n&&(this._isChanging=!0,t=n.call(this,e),this._isChanging=!1);var r;if(this.props.multiple){r=[];for(var o=e.target.options,a=0,s=o.length;s>a;a++)o[a].selected&&r.push(o[a].value)}else r=e.target.value;return this.setState({value:r}),t}});t.exports=p},{"./AutoFocusMixin":1,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./merge":141}],50:[function(e,t){"use strict";function n(e,t,n,r){return e===n&&t===r}function r(e){var t=document.selection,n=t.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(e),o.setEndPoint("EndToStart",n);var i=o.text.length,a=i+r;return{start:i,end:a}}function o(e){var t=window.getSelection();if(0===t.rangeCount)return null;var r=t.anchorNode,o=t.anchorOffset,i=t.focusNode,a=t.focusOffset,s=t.getRangeAt(0),u=n(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),c=u?0:s.toString().length,l=s.cloneRange();l.selectNodeContents(e),l.setEnd(s.startContainer,s.startOffset);var p=n(l.startContainer,l.startOffset,l.endContainer,l.endOffset),d=p?0:l.toString().length,f=d+c,h=document.createRange();h.setStart(r,o),h.setEnd(i,a);var v=h.collapsed;return h.detach(),{start:v?f:d,end:v?d:f}}function i(e,t){var n,r,o=document.selection.createRange().duplicate();"undefined"==typeof t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function a(e,t){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i="undefined"==typeof t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var s=u(e,o),l=u(e,i);if(s&&l){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(l.node,l.offset)):(p.setEnd(l.node,l.offset),n.addRange(p)),p.detach()}}var s=e("./ExecutionEnvironment"),u=e("./getNodeForCharacterOffset"),c=e("./getTextContentAccessor"),l=s.canUseDOM&&document.selection,p={getOffsets:l?r:o,setOffsets:l?i:a};t.exports=p},{"./ExecutionEnvironment":22,"./getNodeForCharacterOffset":124,"./getTextContentAccessor":126}],51:[function(e,t){"use strict";var n=e("./AutoFocusMixin"),r=e("./DOMPropertyOperations"),o=e("./LinkedValueUtils"),i=e("./ReactBrowserComponentMixin"),a=e("./ReactCompositeComponent"),s=e("./ReactDOM"),u=e("./invariant"),c=e("./merge"),l=(e("./warning"),s.textarea),p=a.createClass({displayName:"ReactDOMTextarea",mixins:[n,o.Mixin,i],getInitialState:function(){var e=this.props.defaultValue,t=this.props.children;null!=t&&(u(null==e),Array.isArray(t)&&(u(t.length<=1),t=t[0]),e=""+t),null==e&&(e="");var n=o.getValue(this);return{initialValue:""+(null!=n?n:e)}},shouldComponentUpdate:function(){return!this._isChanging},render:function(){var e=c(this.props);return u(null==e.dangerouslySetInnerHTML),e.defaultValue=null,e.value=null,e.onChange=this._handleChange,l(e,this.state.initialValue)},componentDidUpdate:function(){var e=o.getValue(this);if(null!=e){var t=this.getDOMNode();r.setValueForProperty(t,"value",""+e)}},_handleChange:function(e){var t,n=o.getOnChange(this);return n&&(this._isChanging=!0,t=n.call(this,e),this._isChanging=!1),this.setState({value:e.target.value}),t}});t.exports=p},{"./AutoFocusMixin":1,"./DOMPropertyOperations":12,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./invariant":131,"./merge":141,"./warning":153}],52:[function(e,t){"use strict";function n(){this.reinitializeTransaction()}var r=e("./ReactUpdates"),o=e("./Transaction"),i=e("./emptyFunction"),a=e("./mixInto"),s={initialize:i,close:function(){p.isBatchingUpdates=!1}},u={initialize:i,close:r.flushBatchedUpdates.bind(r)},c=[u,s];a(n,o.Mixin),a(n,{getTransactionWrappers:function(){return c}});var l=new n,p={isBatchingUpdates:!1,batchedUpdates:function(e,t,n){var r=p.isBatchingUpdates;p.isBatchingUpdates=!0,r?e(t,n):l.perform(e,null,t,n)}};t.exports=p},{"./ReactUpdates":84,"./Transaction":101,"./emptyFunction":113,"./mixInto":144}],53:[function(e,t){"use strict";function n(){x.EventEmitter.injectReactEventListener(D),x.EventPluginHub.injectEventPluginOrder(s),x.EventPluginHub.injectInstanceHandle(b),x.EventPluginHub.injectMount(O),x.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:S,EnterLeaveEventPlugin:u,ChangeEventPlugin:o,CompositionEventPlugin:a,MobileSafariClickEventPlugin:p,SelectEventPlugin:P,BeforeInputEventPlugin:r}),x.DOM.injectComponentClasses({button:m,form:g,img:y,input:C,option:E,select:R,textarea:M,html:_(v.html),head:_(v.head),body:_(v.body)}),x.CompositeComponent.injectMixin(d),x.DOMProperty.injectDOMPropertyConfig(l),x.DOMProperty.injectDOMPropertyConfig(w),x.EmptyComponent.injectEmptyComponent(v.noscript),x.Updates.injectReconcileTransaction(f.ReactReconcileTransaction),x.Updates.injectBatchingStrategy(h),x.RootIndex.injectCreateReactRootIndex(c.canUseDOM?i.createReactRootIndex:T.createReactRootIndex),x.Component.injectEnvironment(f)}var r=e("./BeforeInputEventPlugin"),o=e("./ChangeEventPlugin"),i=e("./ClientReactRootIndex"),a=e("./CompositionEventPlugin"),s=e("./DefaultEventPluginOrder"),u=e("./EnterLeaveEventPlugin"),c=e("./ExecutionEnvironment"),l=e("./HTMLDOMPropertyConfig"),p=e("./MobileSafariClickEventPlugin"),d=e("./ReactBrowserComponentMixin"),f=e("./ReactComponentBrowserEnvironment"),h=e("./ReactDefaultBatchingStrategy"),v=e("./ReactDOM"),m=e("./ReactDOMButton"),g=e("./ReactDOMForm"),y=e("./ReactDOMImg"),C=e("./ReactDOMInput"),E=e("./ReactDOMOption"),R=e("./ReactDOMSelect"),M=e("./ReactDOMTextarea"),D=e("./ReactEventListener"),x=e("./ReactInjection"),b=e("./ReactInstanceHandles"),O=e("./ReactMount"),P=e("./SelectEventPlugin"),T=e("./ServerReactRootIndex"),S=e("./SimpleEventPlugin"),w=e("./SVGDOMPropertyConfig"),_=e("./createFullPageComponent");t.exports={inject:n}},{"./BeforeInputEventPlugin":2,"./ChangeEventPlugin":7,"./ClientReactRootIndex":8,"./CompositionEventPlugin":9,"./DefaultEventPluginOrder":14,"./EnterLeaveEventPlugin":15,"./ExecutionEnvironment":22,"./HTMLDOMPropertyConfig":23,"./MobileSafariClickEventPlugin":27,"./ReactBrowserComponentMixin":30,"./ReactComponentBrowserEnvironment":36,"./ReactDOM":41,"./ReactDOMButton":42,"./ReactDOMForm":44,"./ReactDOMImg":46,"./ReactDOMInput":47,"./ReactDOMOption":48,"./ReactDOMSelect":49,"./ReactDOMTextarea":51,"./ReactDefaultBatchingStrategy":52,"./ReactEventListener":59,"./ReactInjection":60,"./ReactInstanceHandles":62,"./ReactMount":65,"./SVGDOMPropertyConfig":86,"./SelectEventPlugin":87,"./ServerReactRootIndex":88,"./SimpleEventPlugin":89,"./createFullPageComponent":109}],54:[function(e,t){"use strict";function n(e,t){if("function"==typeof t)for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];if("function"==typeof r){var o=r.bind(t);for(var i in r)r.hasOwnProperty(i)&&(o[i]=r[i]);e[n]=o}else e[n]=r}}var r=e("./ReactContext"),o=e("./ReactCurrentOwner"),i=e("./merge"),a=(e("./warning"),function(){});a.createFactory=function(e){var t=Object.create(a.prototype),s=function(e,n){null==e?e={}:"object"==typeof e&&(e=i(e));var a=arguments.length-1;if(1===a)e.children=n;else if(a>1){for(var s=Array(a),u=0;a>u;u++)s[u]=arguments[u+1];e.children=s}var c=Object.create(t);return c._owner=o.current,c._context=r.current,c.props=e,c};return s.prototype=t,s.type=e,t.type=e,n(s,e),t.constructor=s,s},a.cloneAndReplaceProps=function(e,t){var n=Object.create(e.constructor.prototype);return n._owner=e._owner,n._context=e._context,n.props=t,n},a.isValidFactory=function(e){return"function"==typeof e&&e.prototype instanceof a},a.isValidDescriptor=function(e){return e instanceof a},t.exports=a},{"./ReactContext":39,"./ReactCurrentOwner":40,"./merge":141,"./warning":153}],55:[function(e,t){"use strict";function n(){var e=p.current;return e&&e.constructor.displayName||void 0}function r(e,t){e._store.validated||null!=e.props.key||(e._store.validated=!0,i("react_key_warning",'Each child in an array should have a unique "key" prop.',e,t))}function o(e,t,n){m.test(e)&&i("react_numeric_key_warning","Child objects should have non-numeric keys so ordering is preserved.",t,n)}function i(e,t,r,o){var i=n(),a=o.displayName,s=i||a,u=f[e];if(!u.hasOwnProperty(s)){u[s]=!0,t+=i?" Check the render method of "+i+".":" Check the renderComponent call using <"+a+">.";var c=null;r._owner&&r._owner!==p.current&&(c=r._owner.constructor.displayName,t+=" It was passed a child from "+c+"."),t+=" See http://fb.me/react-warning-keys for more information.",d(e,{component:s,componentOwner:c}),console.warn(t)}}function a(){var e=n()||"";h.hasOwnProperty(e)||(h[e]=!0,d("react_object_map_children"))}function s(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++){var i=e[n];c.isValidDescriptor(i)&&r(i,t)}else if(c.isValidDescriptor(e))e._store.validated=!0;else if(e&&"object"==typeof e){a();for(var s in e)o(s,e[s],t)}}function u(e,t,n,r){for(var o in t)if(t.hasOwnProperty(o)){var i;try{i=t[o](n,o,e,r)}catch(a){i=a}i instanceof Error&&!(i.message in v)&&(v[i.message]=!0,d("react_failed_descriptor_type_check",{message:i.message}))}}var c=e("./ReactDescriptor"),l=e("./ReactPropTypeLocations"),p=e("./ReactCurrentOwner"),d=e("./monitorCodeUse"),f={react_key_warning:{},react_numeric_key_warning:{}},h={},v={},m=/^\d+$/,g={createFactory:function(e,t,n){var r=function(){for(var r=e.apply(this,arguments),o=1;o<arguments.length;o++)s(arguments[o],r.type);var i=r.type.displayName;return t&&u(i,t,r.props,l.prop),n&&u(i,n,r._context,l.context),r};r.prototype=e.prototype,r.type=e.type;for(var o in e)e.hasOwnProperty(o)&&(r[o]=e[o]);return r}};t.exports=g},{"./ReactCurrentOwner":40,"./ReactDescriptor":54,"./ReactPropTypeLocations":72,"./monitorCodeUse":145}],56:[function(e,t){"use strict";function n(){return s(a),a()}function r(e){u[e]=!0}function o(e){delete u[e]}function i(e){return u[e]}var a,s=e("./invariant"),u={},c={injectEmptyComponent:function(e){a=e}},l={deregisterNullComponentID:o,getEmptyComponent:n,injection:c,isNullComponentID:i,registerNullComponentID:r};t.exports=l},{"./invariant":131}],57:[function(e,t){"use strict";var n={guard:function(e){return e}};t.exports=n},{}],58:[function(e,t){"use strict";function n(e){r.enqueueEvents(e),r.processEventQueue()}var r=e("./EventPluginHub"),o={handleTopLevel:function(e,t,o,i){var a=r.extractEvents(e,t,o,i);n(a)}};t.exports=o},{"./EventPluginHub":18}],59:[function(e,t){"use strict";function n(e){var t=l.getID(e),n=c.getReactRootIDFromNodeID(t),r=l.findReactContainerForID(n),o=l.getFirstReactDOM(r);return o}function r(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function o(e){for(var t=l.getFirstReactDOM(d(e.nativeEvent))||window,r=t;r;)e.ancestors.push(r),r=n(r);for(var o=0,i=e.ancestors.length;i>o;o++){t=e.ancestors[o];var a=l.getID(t)||"";v._handleTopLevel(e.topLevelType,t,a,e.nativeEvent)}}function i(e){var t=f(window);e(t)}var a=e("./EventListener"),s=e("./ExecutionEnvironment"),u=e("./PooledClass"),c=e("./ReactInstanceHandles"),l=e("./ReactMount"),p=e("./ReactUpdates"),d=e("./getEventTarget"),f=e("./getUnboundedScrollPosition"),h=e("./mixInto");h(r,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),u.addPoolingTo(r,u.twoArgumentPooler);var v={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:s.canUseDOM?window:null,setHandleTopLevel:function(e){v._handleTopLevel=e},setEnabled:function(e){v._enabled=!!e},isEnabled:function(){return v._enabled},trapBubbledEvent:function(e,t,n){var r=n;return r?a.listen(r,t,v.dispatchEvent.bind(null,e)):void 0},trapCapturedEvent:function(e,t,n){var r=n;return r?a.capture(r,t,v.dispatchEvent.bind(null,e)):void 0},monitorScrollValue:function(e){var t=i.bind(null,e);a.listen(window,"scroll",t),a.listen(window,"resize",t)},dispatchEvent:function(e,t){if(v._enabled){var n=r.getPooled(e,t);try{p.batchedUpdates(o,n)}finally{r.release(n)}}}};t.exports=v},{"./EventListener":17,"./ExecutionEnvironment":22,"./PooledClass":28,"./ReactInstanceHandles":62,"./ReactMount":65,"./ReactUpdates":84,"./getEventTarget":122,"./getUnboundedScrollPosition":127,"./mixInto":144}],60:[function(e,t){"use strict";var n=e("./DOMProperty"),r=e("./EventPluginHub"),o=e("./ReactComponent"),i=e("./ReactCompositeComponent"),a=e("./ReactDOM"),s=e("./ReactEmptyComponent"),u=e("./ReactBrowserEventEmitter"),c=e("./ReactPerf"),l=e("./ReactRootIndex"),p=e("./ReactUpdates"),d={Component:o.injection,CompositeComponent:i.injection,DOMProperty:n.injection,EmptyComponent:s.injection,EventPluginHub:r.injection,DOM:a.injection,EventEmitter:u.injection,Perf:c.injection,RootIndex:l.injection,Updates:p.injection};t.exports=d},{"./DOMProperty":11,"./EventPluginHub":18,"./ReactBrowserEventEmitter":31,"./ReactComponent":35,"./ReactCompositeComponent":38,"./ReactDOM":41,"./ReactEmptyComponent":56,"./ReactPerf":69,"./ReactRootIndex":76,"./ReactUpdates":84}],61:[function(e,t){"use strict";function n(e){return o(document.documentElement,e)}var r=e("./ReactDOMSelection"),o=e("./containsNode"),i=e("./focusNode"),a=e("./getActiveElement"),s={hasSelectionCapabilities:function(e){return e&&("INPUT"===e.nodeName&&"text"===e.type||"TEXTAREA"===e.nodeName||"true"===e.contentEditable)},getSelectionInformation:function(){var e=a();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t=a(),r=e.focusedElem,o=e.selectionRange;t!==r&&n(r)&&(s.hasSelectionCapabilities(r)&&s.setSelection(r,o),i(r))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&"INPUT"===e.nodeName){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=r.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,o=t.end;if("undefined"==typeof o&&(o=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(o,e.value.length);else if(document.selection&&"INPUT"===e.nodeName){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",o-n),i.select()}else r.setOffsets(e,t)}};t.exports=s},{"./ReactDOMSelection":50,"./containsNode":106,"./focusNode":117,"./getActiveElement":119}],62:[function(e,t){"use strict";function n(e){return d+e.toString(36)}function r(e,t){return e.charAt(t)===d||t===e.length}function o(e){return""===e||e.charAt(0)===d&&e.charAt(e.length-1)!==d}function i(e,t){return 0===t.indexOf(e)&&r(t,e.length)}function a(e){return e?e.substr(0,e.lastIndexOf(d)):""}function s(e,t){if(p(o(e)&&o(t)),p(i(e,t)),e===t)return e;for(var n=e.length+f,a=n;a<t.length&&!r(t,a);a++);return t.substr(0,a)}function u(e,t){var n=Math.min(e.length,t.length);if(0===n)return"";for(var i=0,a=0;n>=a;a++)if(r(e,a)&&r(t,a))i=a;else if(e.charAt(a)!==t.charAt(a))break;var s=e.substr(0,i);return p(o(s)),s}function c(e,t,n,r,o,u){e=e||"",t=t||"",p(e!==t);var c=i(t,e);p(c||i(e,t));for(var l=0,d=c?a:s,f=e;;f=d(f,t)){var v;if(o&&f===e||u&&f===t||(v=n(f,c,r)),v===!1||f===t)break;p(l++<h)}}var l=e("./ReactRootIndex"),p=e("./invariant"),d=".",f=d.length,h=100,v={createReactRootID:function(){return n(l.createReactRootIndex())},createReactID:function(e,t){return e+t},getReactRootIDFromNodeID:function(e){if(e&&e.charAt(0)===d&&e.length>1){var t=e.indexOf(d,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var i=u(e,t);i!==e&&c(e,i,n,r,!1,!0),i!==t&&c(i,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(c("",e,t,n,!0,!1),c(e,"",t,n,!1,!0))},traverseAncestors:function(e,t,n){c("",e,t,n,!0,!1)},_getFirstCommonAncestorID:u,_getNextDescendantID:s,isAncestorIDOf:i,SEPARATOR:d};t.exports=v},{"./ReactRootIndex":76,"./invariant":131}],63:[function(e,t){"use strict";function n(e,t){this.value=e,this.requestChange=t}function r(e){var t={value:"undefined"==typeof e?o.PropTypes.any.isRequired:e.isRequired,requestChange:o.PropTypes.func.isRequired};return o.PropTypes.shape(t)}var o=e("./React");n.PropTypes={link:r},t.exports=n},{"./React":29}],64:[function(e,t){"use strict";var n=e("./adler32"),r={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=n(e);return e.replace(">"," "+r.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var o=t.getAttribute(r.CHECKSUM_ATTR_NAME);o=o&&parseInt(o,10);var i=n(e);return i===o}};t.exports=r},{"./adler32":104}],65:[function(e,t){"use strict";function n(e){var t=g(e);return t&&w.getID(t)}function r(e){var t=o(e);if(t)if(D.hasOwnProperty(t)){var n=D[t];n!==e&&(C(!s(n,t)),D[t]=e)}else D[t]=e;return t}function o(e){return e&&e.getAttribute&&e.getAttribute(M)||""}function i(e,t){var n=o(e);n!==t&&delete D[n],e.setAttribute(M,t),D[t]=e}function a(e){return D.hasOwnProperty(e)&&s(D[e],e)||(D[e]=w.findReactNodeByID(e)),D[e]}function s(e,t){if(e){C(o(e)===t);var n=w.findReactContainerForID(t);if(n&&m(n,e))return!0}return!1}function u(e){delete D[e]}function c(e){var t=D[e];return t&&s(t,e)?void(S=t):!1}function l(e){S=null,h.traverseAncestors(e,c);var t=S;return S=null,t}var p=e("./DOMProperty"),d=e("./ReactBrowserEventEmitter"),f=(e("./ReactCurrentOwner"),e("./ReactDescriptor")),h=e("./ReactInstanceHandles"),v=e("./ReactPerf"),m=e("./containsNode"),g=e("./getReactRootElementInContainer"),y=e("./instantiateReactComponent"),C=e("./invariant"),E=e("./shouldUpdateReactComponent"),R=(e("./warning"),h.SEPARATOR),M=p.ID_ATTRIBUTE_NAME,D={},x=1,b=9,O={},P={},T=[],S=null,w={_instancesByReactRootID:O,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){var o=t.props;return w.scrollMonitor(n,function(){e.replaceProps(o,r)}),e},_registerComponent:function(e,t){C(t&&(t.nodeType===x||t.nodeType===b)),d.ensureScrollValueMonitoring();var n=w.registerContainer(t);return O[n]=e,n},_renderNewRootComponent:v.measure("ReactMount","_renderNewRootComponent",function(e,t,n){var r=y(e),o=w._registerComponent(r,t);return r.mountComponentIntoNode(o,t,n),r}),renderComponent:function(e,t,r){C(f.isValidDescriptor(e));var o=O[n(t)];if(o){var i=o._descriptor;if(E(i,e))return w._updateRootComponent(o,e,t,r);w.unmountComponentAtNode(t)}var a=g(t),s=a&&w.isRenderedByReact(a),u=s&&!o,c=w._renderNewRootComponent(e,t,u);return r&&r.call(c),c},constructAndRenderComponent:function(e,t,n){return w.renderComponent(e(t),n)},constructAndRenderComponentByID:function(e,t,n){var r=document.getElementById(n);return C(r),w.constructAndRenderComponent(e,t,r)},registerContainer:function(e){var t=n(e);return t&&(t=h.getReactRootIDFromNodeID(t)),t||(t=h.createReactRootID()),P[t]=e,t},unmountComponentAtNode:function(e){var t=n(e),r=O[t];return r?(w.unmountComponentFromNode(r,e),delete O[t],delete P[t],!0):!1},unmountComponentFromNode:function(e,t){for(e.unmountComponent(),t.nodeType===b&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)},findReactContainerForID:function(e){var t=h.getReactRootIDFromNodeID(e),n=P[t];return n},findReactNodeByID:function(e){var t=w.findReactContainerForID(e);return w.findComponentRoot(t,e)},isRenderedByReact:function(e){if(1!==e.nodeType)return!1;var t=w.getID(e);return t?t.charAt(0)===R:!1},getFirstReactDOM:function(e){for(var t=e;t&&t.parentNode!==t;){if(w.isRenderedByReact(t))return t;t=t.parentNode}return null},findComponentRoot:function(e,t){var n=T,r=0,o=l(t)||e;for(n[0]=o.firstChild,n.length=1;r<n.length;){for(var i,a=n[r++];a;){var s=w.getID(a);s?t===s?i=a:h.isAncestorIDOf(s,t)&&(n.length=r=0,n.push(a.firstChild)):n.push(a.firstChild),a=a.nextSibling}if(i)return n.length=0,i}n.length=0,C(!1)},getReactRootID:n,getID:r,setID:i,getNode:a,purgeID:u};t.exports=w},{"./DOMProperty":11,"./ReactBrowserEventEmitter":31,"./ReactCurrentOwner":40,"./ReactDescriptor":54,"./ReactInstanceHandles":62,"./ReactPerf":69,"./containsNode":106,"./getReactRootElementInContainer":125,"./instantiateReactComponent":130,"./invariant":131,"./shouldUpdateReactComponent":149,"./warning":153}],66:[function(e,t){"use strict";function n(e,t,n){h.push({parentID:e,parentNode:null,type:c.INSERT_MARKUP,markupIndex:v.push(t)-1,textContent:null,fromIndex:null,toIndex:n})}function r(e,t,n){h.push({parentID:e,parentNode:null,type:c.MOVE_EXISTING,markupIndex:null,textContent:null,fromIndex:t,toIndex:n})}function o(e,t){h.push({parentID:e,parentNode:null,type:c.REMOVE_NODE,markupIndex:null,textContent:null,fromIndex:t,toIndex:null})}function i(e,t){h.push({parentID:e,parentNode:null,type:c.TEXT_CONTENT,markupIndex:null,textContent:t,fromIndex:null,toIndex:null})}function a(){h.length&&(u.BackendIDOperations.dangerouslyProcessChildrenUpdates(h,v),s())}function s(){h.length=0,v.length=0}var u=e("./ReactComponent"),c=e("./ReactMultiChildUpdateTypes"),l=e("./flattenChildren"),p=e("./instantiateReactComponent"),d=e("./shouldUpdateReactComponent"),f=0,h=[],v=[],m={Mixin:{mountChildren:function(e,t){var n=l(e),r=[],o=0;this._renderedChildren=n;for(var i in n){var a=n[i];if(n.hasOwnProperty(i)){var s=p(a);n[i]=s;var u=this._rootNodeID+i,c=s.mountComponent(u,t,this._mountDepth+1);s._mountIndex=o,r.push(c),o++}}return r},updateTextContent:function(e){f++;var t=!0;try{var n=this._renderedChildren;for(var r in n)n.hasOwnProperty(r)&&this._unmountChildByName(n[r],r);this.setTextContent(e),t=!1}finally{f--,f||(t?s():a())}},updateChildren:function(e,t){f++;var n=!0;try{this._updateChildren(e,t),n=!1}finally{f--,f||(n?s():a())}},_updateChildren:function(e,t){var n=l(e),r=this._renderedChildren;if(n||r){var o,i=0,a=0;for(o in n)if(n.hasOwnProperty(o)){var s=r&&r[o],u=s&&s._descriptor,c=n[o];if(d(u,c))this.moveChild(s,a,i),i=Math.max(s._mountIndex,i),s.receiveComponent(c,t),s._mountIndex=a;else{s&&(i=Math.max(s._mountIndex,i),this._unmountChildByName(s,o));var f=p(c);this._mountChildByNameAtIndex(f,o,a,t)}a++}for(o in r)!r.hasOwnProperty(o)||n&&n[o]||this._unmountChildByName(r[o],o)}},unmountChildren:function(){var e=this._renderedChildren;for(var t in e){var n=e[t];n.unmountComponent&&n.unmountComponent()}this._renderedChildren=null},moveChild:function(e,t,n){e._mountIndex<n&&r(this._rootNodeID,e._mountIndex,t)},createChild:function(e,t){n(this._rootNodeID,t,e._mountIndex)},removeChild:function(e){o(this._rootNodeID,e._mountIndex)},setTextContent:function(e){i(this._rootNodeID,e)},_mountChildByNameAtIndex:function(e,t,n,r){var o=this._rootNodeID+t,i=e.mountComponent(o,r,this._mountDepth+1);e._mountIndex=n,this.createChild(e,i),this._renderedChildren=this._renderedChildren||{},this._renderedChildren[t]=e},_unmountChildByName:function(e,t){this.removeChild(e),e._mountIndex=null,e.unmountComponent(),delete this._renderedChildren[t]}}};t.exports=m},{"./ReactComponent":35,"./ReactMultiChildUpdateTypes":67,"./flattenChildren":116,"./instantiateReactComponent":130,"./shouldUpdateReactComponent":149}],67:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({INSERT_MARKUP:null,MOVE_EXISTING:null,REMOVE_NODE:null,TEXT_CONTENT:null});t.exports=r},{"./keyMirror":137}],68:[function(e,t){"use strict";var n=e("./emptyObject"),r=e("./invariant"),o={isValidOwner:function(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)},addComponentAsRefTo:function(e,t,n){r(o.isValidOwner(n)),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){r(o.isValidOwner(n)),n.refs[t]===e&&n.detachRef(t)},Mixin:{construct:function(){this.refs=n},attachRef:function(e,t){r(t.isOwnedBy(this));var o=this.refs===n?this.refs={}:this.refs;o[e]=t},detachRef:function(e){delete this.refs[e]}}};t.exports=o},{"./emptyObject":114,"./invariant":131}],69:[function(e,t){"use strict";function n(e,t,n){return n}var r={enableMeasure:!1,storedMeasure:n,measure:function(e,t,n){return n},injection:{injectMeasure:function(e){r.storedMeasure=e}}};t.exports=r},{}],70:[function(e,t){"use strict";function n(e){return function(t,n,r){t[n]=t.hasOwnProperty(n)?e(t[n],r):r}}function r(e,t){for(var n in t)if(t.hasOwnProperty(n)){var r=c[n];r&&c.hasOwnProperty(n)?r(e,n,t[n]):e.hasOwnProperty(n)||(e[n]=t[n])}return e}var o=e("./emptyFunction"),i=e("./invariant"),a=e("./joinClasses"),s=e("./merge"),u=n(function(e,t){return s(t,e)}),c={children:o,className:n(a),key:o,ref:o,style:u},l={TransferStrategies:c,mergeProps:function(e,t){return r(s(e),t)},Mixin:{transferPropsTo:function(e){return i(e._owner===this),r(e.props,this.props),e}}};t.exports=l},{"./emptyFunction":113,"./invariant":131,"./joinClasses":136,"./merge":141}],71:[function(e,t){"use strict";var n={};t.exports=n},{}],72:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({prop:null,context:null,childContext:null});t.exports=r},{"./keyMirror":137}],73:[function(e,t){"use strict";function n(e){function t(t,n,r,o,i){if(o=o||C,null!=n[r])return e(n,r,o,i);var a=g[i];return t?new Error("Required "+a+" `"+r+"` was not specified in "+("`"+o+"`.")):void 0}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function r(e){function t(t,n,r,o){var i=t[n],a=h(i);if(a!==e){var s=g[o],u=v(i);return new Error("Invalid "+s+" `"+n+"` of type `"+u+"` "+("supplied to `"+r+"`, expected `"+e+"`."))}}return n(t)}function o(){return n(y.thatReturns())}function i(e){function t(t,n,r,o){var i=t[n];if(!Array.isArray(i)){var a=g[o],s=h(i);return new Error("Invalid "+a+" `"+n+"` of type "+("`"+s+"` supplied to `"+r+"`, expected an array."))}for(var u=0;u<i.length;u++){var c=e(i,u,r,o);if(c instanceof Error)return c}}return n(t)}function a(){function e(e,t,n,r){if(!m.isValidDescriptor(e[t])){var o=g[r];return new Error("Invalid "+o+" `"+t+"` supplied to "+("`"+n+"`, expected a React component."))}}return n(e)}function s(e){function t(t,n,r,o){if(!(t[n]instanceof e)){var i=g[o],a=e.name||C;return new Error("Invalid "+i+" `"+n+"` supplied to "+("`"+r+"`, expected instance of `"+a+"`."))}}return n(t)}function u(e){function t(t,n,r,o){for(var i=t[n],a=0;a<e.length;a++)if(i===e[a])return;var s=g[o],u=JSON.stringify(e);return new Error("Invalid "+s+" `"+n+"` of value `"+i+"` "+("supplied to `"+r+"`, expected one of "+u+"."))}return n(t)}function c(e){function t(t,n,r,o){var i=t[n],a=h(i);if("object"!==a){var s=g[o];return new Error("Invalid "+s+" `"+n+"` of type "+("`"+a+"` supplied to `"+r+"`, expected an object."))}for(var u in i)if(i.hasOwnProperty(u)){var c=e(i,u,r,o);if(c instanceof Error)return c}}return n(t)}function l(e){function t(t,n,r,o){for(var i=0;i<e.length;i++){var a=e[i];if(null==a(t,n,r,o))return}var s=g[o];return new Error("Invalid "+s+" `"+n+"` supplied to "+("`"+r+"`."))}return n(t)}function p(){function e(e,t,n,r){if(!f(e[t])){var o=g[r];return new Error("Invalid "+o+" `"+t+"` supplied to "+("`"+n+"`, expected a renderable prop."))}}return n(e)}function d(e){function t(t,n,r,o){var i=t[n],a=h(i);if("object"!==a){var s=g[o];return new Error("Invalid "+s+" `"+n+"` of type `"+a+"` "+("supplied to `"+r+"`, expected `object`."))}for(var u in e){var c=e[u];if(c){var l=c(i,u,r,o);if(l)return l}}}return n(t,"expected `object`")}function f(e){switch(typeof e){case"number":case"string":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(f);if(m.isValidDescriptor(e))return!0;for(var t in e)if(!f(e[t]))return!1;return!0;default:return!1}}function h(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":t}function v(e){var t=h(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}var m=e("./ReactDescriptor"),g=e("./ReactPropTypeLocationNames"),y=e("./emptyFunction"),C="<<anonymous>>",E={array:r("array"),bool:r("boolean"),func:r("function"),number:r("number"),object:r("object"),string:r("string"),any:o(),arrayOf:i,component:a(),instanceOf:s,objectOf:c,oneOf:u,oneOfType:l,renderable:p(),shape:d};t.exports=E},{"./ReactDescriptor":54,"./ReactPropTypeLocationNames":71,"./emptyFunction":113}],74:[function(e,t){"use strict";function n(){this.listenersToPut=[]}var r=e("./PooledClass"),o=e("./ReactBrowserEventEmitter"),i=e("./mixInto");i(n,{enqueuePutListener:function(e,t,n){this.listenersToPut.push({rootNodeID:e,propKey:t,propValue:n})},putListeners:function(){for(var e=0;e<this.listenersToPut.length;e++){var t=this.listenersToPut[e];o.putListener(t.rootNodeID,t.propKey,t.propValue)}},reset:function(){this.listenersToPut.length=0},destructor:function(){this.reset()}}),r.addPoolingTo(n),t.exports=n},{"./PooledClass":28,"./ReactBrowserEventEmitter":31,"./mixInto":144}],75:[function(e,t){"use strict";function n(){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=r.getPooled(null),this.putListenerQueue=s.getPooled()}var r=e("./CallbackQueue"),o=e("./PooledClass"),i=e("./ReactBrowserEventEmitter"),a=e("./ReactInputSelection"),s=e("./ReactPutListenerQueue"),u=e("./Transaction"),c=e("./mixInto"),l={initialize:a.getSelectionInformation,close:a.restoreSelection},p={initialize:function(){var e=i.isEnabled();return i.setEnabled(!1),e},close:function(e){i.setEnabled(e)}},d={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},f={initialize:function(){this.putListenerQueue.reset()},close:function(){this.putListenerQueue.putListeners()}},h=[f,l,p,d],v={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},getPutListenerQueue:function(){return this.putListenerQueue},destructor:function(){r.release(this.reactMountReady),this.reactMountReady=null,s.release(this.putListenerQueue),this.putListenerQueue=null}};c(n,u.Mixin),c(n,v),o.addPoolingTo(n),t.exports=n},{"./CallbackQueue":6,"./PooledClass":28,"./ReactBrowserEventEmitter":31,"./ReactInputSelection":61,"./ReactPutListenerQueue":74,"./Transaction":101,"./mixInto":144}],76:[function(e,t){"use strict";var n={injectCreateReactRootIndex:function(e){r.createReactRootIndex=e}},r={createReactRootIndex:null,injection:n};t.exports=r},{}],77:[function(e,t){"use strict";function n(e){c(o.isValidDescriptor(e)),c(!(2===arguments.length&&"function"==typeof arguments[1]));var t;try{var n=i.createReactRootID();return t=s.getPooled(!1),t.perform(function(){var r=u(e),o=r.mountComponent(n,t,0);return a.addChecksumToMarkup(o)},null)}finally{s.release(t)}}function r(e){c(o.isValidDescriptor(e));var t;try{var n=i.createReactRootID();return t=s.getPooled(!0),t.perform(function(){var r=u(e);return r.mountComponent(n,t,0)},null)}finally{s.release(t)}}var o=e("./ReactDescriptor"),i=e("./ReactInstanceHandles"),a=e("./ReactMarkupChecksum"),s=e("./ReactServerRenderingTransaction"),u=e("./instantiateReactComponent"),c=e("./invariant");t.exports={renderComponentToString:n,renderComponentToStaticMarkup:r}},{"./ReactDescriptor":54,"./ReactInstanceHandles":62,"./ReactMarkupChecksum":64,"./ReactServerRenderingTransaction":78,"./instantiateReactComponent":130,"./invariant":131}],78:[function(e,t){"use strict";function n(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.reactMountReady=o.getPooled(null),this.putListenerQueue=i.getPooled()}var r=e("./PooledClass"),o=e("./CallbackQueue"),i=e("./ReactPutListenerQueue"),a=e("./Transaction"),s=e("./emptyFunction"),u=e("./mixInto"),c={initialize:function(){this.reactMountReady.reset()},close:s},l={initialize:function(){this.putListenerQueue.reset()},close:s},p=[l,c],d={getTransactionWrappers:function(){return p},getReactMountReady:function(){return this.reactMountReady},getPutListenerQueue:function(){return this.putListenerQueue},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null,i.release(this.putListenerQueue),this.putListenerQueue=null
    21 }};u(n,a.Mixin),u(n,d),r.addPoolingTo(n),t.exports=n},{"./CallbackQueue":6,"./PooledClass":28,"./ReactPutListenerQueue":74,"./Transaction":101,"./emptyFunction":113,"./mixInto":144}],79:[function(e,t){"use strict";function n(e,t){var n={};return function(r){n[t]=r,e.setState(n)}}var r={createStateSetter:function(e,t){return function(n,r,o,i,a,s){var u=t.call(e,n,r,o,i,a,s);u&&e.setState(u)}},createStateKeySetter:function(e,t){var r=e.__keySetters||(e.__keySetters={});return r[t]||(r[t]=n(e,t))}};r.Mixin={createStateSetter:function(e){return r.createStateSetter(this,e)},createStateKeySetter:function(e){return r.createStateKeySetter(this,e)}},t.exports=r},{}],80:[function(e,t){"use strict";var n=e("./DOMPropertyOperations"),r=e("./ReactBrowserComponentMixin"),o=e("./ReactComponent"),i=e("./ReactDescriptor"),a=e("./escapeTextForBrowser"),s=e("./mixInto"),u=function(e){this.construct(e)};s(u,o.Mixin),s(u,r),s(u,{mountComponent:function(e,t,r){o.Mixin.mountComponent.call(this,e,t,r);var i=a(this.props);return t.renderToStaticMarkup?i:"<span "+n.createMarkupForID(e)+">"+i+"</span>"},receiveComponent:function(e){var t=e.props;t!==this.props&&(this.props=t,o.BackendIDOperations.updateTextContentByID(this._rootNodeID,t))}}),t.exports=i.createFactory(u)},{"./DOMPropertyOperations":12,"./ReactBrowserComponentMixin":30,"./ReactComponent":35,"./ReactDescriptor":54,"./escapeTextForBrowser":115,"./mixInto":144}],81:[function(e,t){"use strict";var n=e("./ReactChildren"),r={getChildMapping:function(e){return n.map(e,function(e){return e})},mergeChildMappings:function(e,t){function n(n){return t.hasOwnProperty(n)?t[n]:e[n]}e=e||{},t=t||{};var r={},o=[];for(var i in e)t.hasOwnProperty(i)?o.length&&(r[i]=o,o=[]):o.push(i);var a,s={};for(var u in t){if(r.hasOwnProperty(u))for(a=0;a<r[u].length;a++){var c=r[u][a];s[r[u][a]]=n(c)}s[u]=n(u)}for(a=0;a<o.length;a++)s[o[a]]=n(o[a]);return s}};t.exports=r},{"./ReactChildren":34}],82:[function(e,t){"use strict";function n(){var e=document.createElement("div"),t=e.style;"AnimationEvent"in window||delete a.animationend.animation,"TransitionEvent"in window||delete a.transitionend.transition;for(var n in a){var r=a[n];for(var o in r)if(o in t){s.push(r[o]);break}}}function r(e,t,n){e.addEventListener(t,n,!1)}function o(e,t,n){e.removeEventListener(t,n,!1)}var i=e("./ExecutionEnvironment"),a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},s=[];i.canUseDOM&&n();var u={addEndEventListener:function(e,t){return 0===s.length?void window.setTimeout(t,0):void s.forEach(function(n){r(e,n,t)})},removeEndEventListener:function(e,t){0!==s.length&&s.forEach(function(n){o(e,n,t)})}};t.exports=u},{"./ExecutionEnvironment":22}],83:[function(e,t){"use strict";var n=e("./React"),r=e("./ReactTransitionChildMapping"),o=e("./cloneWithProps"),i=e("./emptyFunction"),a=e("./merge"),s=n.createClass({displayName:"ReactTransitionGroup",propTypes:{component:n.PropTypes.func,childFactory:n.PropTypes.func},getDefaultProps:function(){return{component:n.DOM.span,childFactory:i.thatReturnsArgument}},getInitialState:function(){return{children:r.getChildMapping(this.props.children)}},componentWillReceiveProps:function(e){var t=r.getChildMapping(e.children),n=this.state.children;this.setState({children:r.mergeChildMappings(n,t)});var o;for(o in t){var i=n&&n.hasOwnProperty(o);!t[o]||i||this.currentlyTransitioningKeys[o]||this.keysToEnter.push(o)}for(o in n){var a=t&&t.hasOwnProperty(o);!n[o]||a||this.currentlyTransitioningKeys[o]||this.keysToLeave.push(o)}},componentWillMount:function(){this.currentlyTransitioningKeys={},this.keysToEnter=[],this.keysToLeave=[]},componentDidUpdate:function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)},performEnter:function(e){this.currentlyTransitioningKeys[e]=!0;var t=this.refs[e];t.componentWillEnter?t.componentWillEnter(this._handleDoneEntering.bind(this,e)):this._handleDoneEntering(e)},_handleDoneEntering:function(e){var t=this.refs[e];t.componentDidEnter&&t.componentDidEnter(),delete this.currentlyTransitioningKeys[e];var n=r.getChildMapping(this.props.children);n&&n.hasOwnProperty(e)||this.performLeave(e)},performLeave:function(e){this.currentlyTransitioningKeys[e]=!0;var t=this.refs[e];t.componentWillLeave?t.componentWillLeave(this._handleDoneLeaving.bind(this,e)):this._handleDoneLeaving(e)},_handleDoneLeaving:function(e){var t=this.refs[e];t.componentDidLeave&&t.componentDidLeave(),delete this.currentlyTransitioningKeys[e];var n=r.getChildMapping(this.props.children);if(n&&n.hasOwnProperty(e))this.performEnter(e);else{var o=a(this.state.children);delete o[e],this.setState({children:o})}},render:function(){var e={};for(var t in this.state.children){var n=this.state.children[t];n&&(e[t]=o(this.props.childFactory(n),{ref:t}))}return this.transferPropsTo(this.props.component(null,e))}});t.exports=s},{"./React":29,"./ReactTransitionChildMapping":81,"./cloneWithProps":105,"./emptyFunction":113,"./merge":141}],84:[function(e,t){"use strict";function n(){d(R.ReactReconcileTransaction&&v)}function r(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=u.getPooled(null),this.reconcileTransaction=R.ReactReconcileTransaction.getPooled()}function o(e,t,r){n(),v.batchedUpdates(e,t,r)}function i(e,t){return e._mountDepth-t._mountDepth}function a(e){var t=e.dirtyComponentsLength;d(t===h.length),h.sort(i);for(var n=0;t>n;n++){var r=h[n];if(r.isMounted()){var o=r._pendingCallbacks;if(r._pendingCallbacks=null,r.performUpdateIfNecessary(e.reconcileTransaction),o)for(var a=0;a<o.length;a++)e.callbackQueue.enqueue(o[a],r)}}}function s(e,t){return d(!t||"function"==typeof t),n(),v.isBatchingUpdates?(h.push(e),void(t&&(e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t]))):void v.batchedUpdates(s,e,t)}var u=e("./CallbackQueue"),c=e("./PooledClass"),l=(e("./ReactCurrentOwner"),e("./ReactPerf")),p=e("./Transaction"),d=e("./invariant"),f=e("./mixInto"),h=(e("./warning"),[]),v=null,m={initialize:function(){this.dirtyComponentsLength=h.length},close:function(){this.dirtyComponentsLength!==h.length?(h.splice(0,this.dirtyComponentsLength),C()):h.length=0}},g={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},y=[m,g];f(r,p.Mixin),f(r,{getTransactionWrappers:function(){return y},destructor:function(){this.dirtyComponentsLength=null,u.release(this.callbackQueue),this.callbackQueue=null,R.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return p.Mixin.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),c.addPoolingTo(r);var C=l.measure("ReactUpdates","flushBatchedUpdates",function(){for(;h.length;){var e=r.getPooled();e.perform(a,null,e),r.release(e)}}),E={injectReconcileTransaction:function(e){d(e),R.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){d(e),d("function"==typeof e.batchedUpdates),d("boolean"==typeof e.isBatchingUpdates),v=e}},R={ReactReconcileTransaction:null,batchedUpdates:o,enqueueUpdate:s,flushBatchedUpdates:C,injection:E};t.exports=R},{"./CallbackQueue":6,"./PooledClass":28,"./ReactCurrentOwner":40,"./ReactPerf":69,"./Transaction":101,"./invariant":131,"./mixInto":144,"./warning":153}],85:[function(e,t){"use strict";var n=e("./LinkedStateMixin"),r=e("./React"),o=e("./ReactComponentWithPureRenderMixin"),i=e("./ReactCSSTransitionGroup"),a=e("./ReactTransitionGroup"),s=e("./cx"),u=e("./cloneWithProps"),c=e("./update");r.addons={CSSTransitionGroup:i,LinkedStateMixin:n,PureRenderMixin:o,TransitionGroup:a,classSet:s,cloneWithProps:u,update:c},t.exports=r},{"./LinkedStateMixin":24,"./React":29,"./ReactCSSTransitionGroup":32,"./ReactComponentWithPureRenderMixin":37,"./ReactTransitionGroup":83,"./cloneWithProps":105,"./cx":111,"./update":152}],86:[function(e,t){"use strict";var n=e("./DOMProperty"),r=n.injection.MUST_USE_ATTRIBUTE,o={Properties:{cx:r,cy:r,d:r,dx:r,dy:r,fill:r,fillOpacity:r,fontFamily:r,fontSize:r,fx:r,fy:r,gradientTransform:r,gradientUnits:r,markerEnd:r,markerMid:r,markerStart:r,offset:r,opacity:r,patternContentUnits:r,patternUnits:r,points:r,preserveAspectRatio:r,r:r,rx:r,ry:r,spreadMethod:r,stopColor:r,stopOpacity:r,stroke:r,strokeDasharray:r,strokeLinecap:r,strokeOpacity:r,strokeWidth:r,textAnchor:r,transform:r,version:r,viewBox:r,x1:r,x2:r,x:r,y1:r,y2:r,y:r},DOMAttributeNames:{fillOpacity:"fill-opacity",fontFamily:"font-family",fontSize:"font-size",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",patternContentUnits:"patternContentUnits",patternUnits:"patternUnits",preserveAspectRatio:"preserveAspectRatio",spreadMethod:"spreadMethod",stopColor:"stop-color",stopOpacity:"stop-opacity",strokeDasharray:"stroke-dasharray",strokeLinecap:"stroke-linecap",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",viewBox:"viewBox"}};t.exports=o},{"./DOMProperty":11}],87:[function(e,t){"use strict";function n(e){if("selectionStart"in e&&a.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(document.selection){var t=document.selection.createRange();return{parentElement:t.parentElement(),text:t.text,top:t.boundingTop,left:t.boundingLeft}}var n=window.getSelection();return{anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}}function r(e){if(!g&&null!=h&&h==u()){var t=n(h);if(!m||!p(m,t)){m=t;var r=s.getPooled(f.select,v,e);return r.type="select",r.target=h,i.accumulateTwoPhaseDispatches(r),r}}}var o=e("./EventConstants"),i=e("./EventPropagators"),a=e("./ReactInputSelection"),s=e("./SyntheticEvent"),u=e("./getActiveElement"),c=e("./isTextInputElement"),l=e("./keyOf"),p=e("./shallowEqual"),d=o.topLevelTypes,f={select:{phasedRegistrationNames:{bubbled:l({onSelect:null}),captured:l({onSelectCapture:null})},dependencies:[d.topBlur,d.topContextMenu,d.topFocus,d.topKeyDown,d.topMouseDown,d.topMouseUp,d.topSelectionChange]}},h=null,v=null,m=null,g=!1,y={eventTypes:f,extractEvents:function(e,t,n,o){switch(e){case d.topFocus:(c(t)||"true"===t.contentEditable)&&(h=t,v=n,m=null);break;case d.topBlur:h=null,v=null,m=null;break;case d.topMouseDown:g=!0;break;case d.topContextMenu:case d.topMouseUp:return g=!1,r(o);case d.topSelectionChange:case d.topKeyDown:case d.topKeyUp:return r(o)}}};t.exports=y},{"./EventConstants":16,"./EventPropagators":21,"./ReactInputSelection":61,"./SyntheticEvent":93,"./getActiveElement":119,"./isTextInputElement":134,"./keyOf":138,"./shallowEqual":148}],88:[function(e,t){"use strict";var n=Math.pow(2,53),r={createReactRootIndex:function(){return Math.ceil(Math.random()*n)}};t.exports=r},{}],89:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./EventPluginUtils"),o=e("./EventPropagators"),i=e("./SyntheticClipboardEvent"),a=e("./SyntheticEvent"),s=e("./SyntheticFocusEvent"),u=e("./SyntheticKeyboardEvent"),c=e("./SyntheticMouseEvent"),l=e("./SyntheticDragEvent"),p=e("./SyntheticTouchEvent"),d=e("./SyntheticUIEvent"),f=e("./SyntheticWheelEvent"),h=e("./invariant"),v=e("./keyOf"),m=n.topLevelTypes,g={blur:{phasedRegistrationNames:{bubbled:v({onBlur:!0}),captured:v({onBlurCapture:!0})}},click:{phasedRegistrationNames:{bubbled:v({onClick:!0}),captured:v({onClickCapture:!0})}},contextMenu:{phasedRegistrationNames:{bubbled:v({onContextMenu:!0}),captured:v({onContextMenuCapture:!0})}},copy:{phasedRegistrationNames:{bubbled:v({onCopy:!0}),captured:v({onCopyCapture:!0})}},cut:{phasedRegistrationNames:{bubbled:v({onCut:!0}),captured:v({onCutCapture:!0})}},doubleClick:{phasedRegistrationNames:{bubbled:v({onDoubleClick:!0}),captured:v({onDoubleClickCapture:!0})}},drag:{phasedRegistrationNames:{bubbled:v({onDrag:!0}),captured:v({onDragCapture:!0})}},dragEnd:{phasedRegistrationNames:{bubbled:v({onDragEnd:!0}),captured:v({onDragEndCapture:!0})}},dragEnter:{phasedRegistrationNames:{bubbled:v({onDragEnter:!0}),captured:v({onDragEnterCapture:!0})}},dragExit:{phasedRegistrationNames:{bubbled:v({onDragExit:!0}),captured:v({onDragExitCapture:!0})}},dragLeave:{phasedRegistrationNames:{bubbled:v({onDragLeave:!0}),captured:v({onDragLeaveCapture:!0})}},dragOver:{phasedRegistrationNames:{bubbled:v({onDragOver:!0}),captured:v({onDragOverCapture:!0})}},dragStart:{phasedRegistrationNames:{bubbled:v({onDragStart:!0}),captured:v({onDragStartCapture:!0})}},drop:{phasedRegistrationNames:{bubbled:v({onDrop:!0}),captured:v({onDropCapture:!0})}},focus:{phasedRegistrationNames:{bubbled:v({onFocus:!0}),captured:v({onFocusCapture:!0})}},input:{phasedRegistrationNames:{bubbled:v({onInput:!0}),captured:v({onInputCapture:!0})}},keyDown:{phasedRegistrationNames:{bubbled:v({onKeyDown:!0}),captured:v({onKeyDownCapture:!0})}},keyPress:{phasedRegistrationNames:{bubbled:v({onKeyPress:!0}),captured:v({onKeyPressCapture:!0})}},keyUp:{phasedRegistrationNames:{bubbled:v({onKeyUp:!0}),captured:v({onKeyUpCapture:!0})}},load:{phasedRegistrationNames:{bubbled:v({onLoad:!0}),captured:v({onLoadCapture:!0})}},error:{phasedRegistrationNames:{bubbled:v({onError:!0}),captured:v({onErrorCapture:!0})}},mouseDown:{phasedRegistrationNames:{bubbled:v({onMouseDown:!0}),captured:v({onMouseDownCapture:!0})}},mouseMove:{phasedRegistrationNames:{bubbled:v({onMouseMove:!0}),captured:v({onMouseMoveCapture:!0})}},mouseOut:{phasedRegistrationNames:{bubbled:v({onMouseOut:!0}),captured:v({onMouseOutCapture:!0})}},mouseOver:{phasedRegistrationNames:{bubbled:v({onMouseOver:!0}),captured:v({onMouseOverCapture:!0})}},mouseUp:{phasedRegistrationNames:{bubbled:v({onMouseUp:!0}),captured:v({onMouseUpCapture:!0})}},paste:{phasedRegistrationNames:{bubbled:v({onPaste:!0}),captured:v({onPasteCapture:!0})}},reset:{phasedRegistrationNames:{bubbled:v({onReset:!0}),captured:v({onResetCapture:!0})}},scroll:{phasedRegistrationNames:{bubbled:v({onScroll:!0}),captured:v({onScrollCapture:!0})}},submit:{phasedRegistrationNames:{bubbled:v({onSubmit:!0}),captured:v({onSubmitCapture:!0})}},touchCancel:{phasedRegistrationNames:{bubbled:v({onTouchCancel:!0}),captured:v({onTouchCancelCapture:!0})}},touchEnd:{phasedRegistrationNames:{bubbled:v({onTouchEnd:!0}),captured:v({onTouchEndCapture:!0})}},touchMove:{phasedRegistrationNames:{bubbled:v({onTouchMove:!0}),captured:v({onTouchMoveCapture:!0})}},touchStart:{phasedRegistrationNames:{bubbled:v({onTouchStart:!0}),captured:v({onTouchStartCapture:!0})}},wheel:{phasedRegistrationNames:{bubbled:v({onWheel:!0}),captured:v({onWheelCapture:!0})}}},y={topBlur:g.blur,topClick:g.click,topContextMenu:g.contextMenu,topCopy:g.copy,topCut:g.cut,topDoubleClick:g.doubleClick,topDrag:g.drag,topDragEnd:g.dragEnd,topDragEnter:g.dragEnter,topDragExit:g.dragExit,topDragLeave:g.dragLeave,topDragOver:g.dragOver,topDragStart:g.dragStart,topDrop:g.drop,topError:g.error,topFocus:g.focus,topInput:g.input,topKeyDown:g.keyDown,topKeyPress:g.keyPress,topKeyUp:g.keyUp,topLoad:g.load,topMouseDown:g.mouseDown,topMouseMove:g.mouseMove,topMouseOut:g.mouseOut,topMouseOver:g.mouseOver,topMouseUp:g.mouseUp,topPaste:g.paste,topReset:g.reset,topScroll:g.scroll,topSubmit:g.submit,topTouchCancel:g.touchCancel,topTouchEnd:g.touchEnd,topTouchMove:g.touchMove,topTouchStart:g.touchStart,topWheel:g.wheel};for(var C in y)y[C].dependencies=[C];var E={eventTypes:g,executeDispatch:function(e,t,n){var o=r.executeDispatch(e,t,n);o===!1&&(e.stopPropagation(),e.preventDefault())},extractEvents:function(e,t,n,r){var v=y[e];if(!v)return null;var g;switch(e){case m.topInput:case m.topLoad:case m.topError:case m.topReset:case m.topSubmit:g=a;break;case m.topKeyPress:if(0===r.charCode)return null;case m.topKeyDown:case m.topKeyUp:g=u;break;case m.topBlur:case m.topFocus:g=s;break;case m.topClick:if(2===r.button)return null;case m.topContextMenu:case m.topDoubleClick:case m.topMouseDown:case m.topMouseMove:case m.topMouseOut:case m.topMouseOver:case m.topMouseUp:g=c;break;case m.topDrag:case m.topDragEnd:case m.topDragEnter:case m.topDragExit:case m.topDragLeave:case m.topDragOver:case m.topDragStart:case m.topDrop:g=l;break;case m.topTouchCancel:case m.topTouchEnd:case m.topTouchMove:case m.topTouchStart:g=p;break;case m.topScroll:g=d;break;case m.topWheel:g=f;break;case m.topCopy:case m.topCut:case m.topPaste:g=i}h(g);var C=g.getPooled(v,n,r);return o.accumulateTwoPhaseDispatches(C),C}};t.exports=E},{"./EventConstants":16,"./EventPluginUtils":20,"./EventPropagators":21,"./SyntheticClipboardEvent":90,"./SyntheticDragEvent":92,"./SyntheticEvent":93,"./SyntheticFocusEvent":94,"./SyntheticKeyboardEvent":96,"./SyntheticMouseEvent":97,"./SyntheticTouchEvent":98,"./SyntheticUIEvent":99,"./SyntheticWheelEvent":100,"./invariant":131,"./keyOf":138}],90:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":93}],91:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={data:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":93}],92:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticMouseEvent"),o={dataTransfer:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticMouseEvent":97}],93:[function(e,t){"use strict";function n(e,t,n){this.dispatchConfig=e,this.dispatchMarker=t,this.nativeEvent=n;var r=this.constructor.Interface;for(var i in r)if(r.hasOwnProperty(i)){var a=r[i];this[i]=a?a(n):n[i]}var s=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;this.isDefaultPrevented=s?o.thatReturnsTrue:o.thatReturnsFalse,this.isPropagationStopped=o.thatReturnsFalse}var r=e("./PooledClass"),o=e("./emptyFunction"),i=e("./getEventTarget"),a=e("./merge"),s=e("./mergeInto"),u={type:null,target:i,currentTarget:o.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};s(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e.preventDefault?e.preventDefault():e.returnValue=!1,this.isDefaultPrevented=o.thatReturnsTrue},stopPropagation:function(){var e=this.nativeEvent;e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this.isPropagationStopped=o.thatReturnsTrue},persist:function(){this.isPersistent=o.thatReturnsTrue},isPersistent:o.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;this.dispatchConfig=null,this.dispatchMarker=null,this.nativeEvent=null}}),n.Interface=u,n.augmentClass=function(e,t){var n=this,o=Object.create(n.prototype);s(o,e.prototype),e.prototype=o,e.prototype.constructor=e,e.Interface=a(n.Interface,t),e.augmentClass=n.augmentClass,r.addPoolingTo(e,r.threeArgumentPooler)},r.addPoolingTo(n,r.threeArgumentPooler),t.exports=n},{"./PooledClass":28,"./emptyFunction":113,"./getEventTarget":122,"./merge":141,"./mergeInto":143}],94:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o={relatedTarget:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticUIEvent":99}],95:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={data:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":93}],96:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./getEventKey"),i=e("./getEventModifierState"),a={key:o,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:i,charCode:function(e){return"keypress"===e.type?"charCode"in e?e.charCode:e.keyCode:0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return e.keyCode||e.charCode}};r.augmentClass(n,a),t.exports=n},{"./SyntheticUIEvent":99,"./getEventKey":120,"./getEventModifierState":121}],97:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./ViewportMetrics"),i=e("./getEventModifierState"),a={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:i,button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+o.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+o.currentScrollTop}};r.augmentClass(n,a),t.exports=n},{"./SyntheticUIEvent":99,"./ViewportMetrics":102,"./getEventModifierState":121}],98:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./getEventModifierState"),i={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:o};r.augmentClass(n,i),t.exports=n},{"./SyntheticUIEvent":99,"./getEventModifierState":121}],99:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o=e("./getEventTarget"),i={view:function(e){if(e.view)return e.view;var t=o(e);if(null!=t&&t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};r.augmentClass(n,i),t.exports=n},{"./SyntheticEvent":93,"./getEventTarget":122}],100:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticMouseEvent"),o={deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticMouseEvent":97}],101:[function(e,t){"use strict";var n=e("./invariant"),r={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,r,o,i,a,s,u){n(!this.isInTransaction());var c,l;try{this._isInTransaction=!0,c=!0,this.initializeAll(0),l=e.call(t,r,o,i,a,s,u),c=!1}finally{try{if(c)try{this.closeAll(0)}catch(p){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return l},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=o.OBSERVED_ERROR,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o.OBSERVED_ERROR)try{this.initializeAll(n+1)}catch(i){}}}},closeAll:function(e){n(this.isInTransaction());for(var t=this.transactionWrappers,r=e;r<t.length;r++){var i,a=t[r],s=this.wrapperInitData[r];try{i=!0,s!==o.OBSERVED_ERROR&&a.close&&a.close.call(this,s),i=!1}finally{if(i)try{this.closeAll(r+1)}catch(u){}}}this.wrapperInitData.length=0}},o={Mixin:r,OBSERVED_ERROR:{}};t.exports=o},{"./invariant":131}],102:[function(e,t){"use strict";var n=e("./getUnboundedScrollPosition"),r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(){var e=n(window);r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};t.exports=r},{"./getUnboundedScrollPosition":127}],103:[function(e,t){"use strict";function n(e,t){if(r(null!=t),null==e)return t;var n=Array.isArray(e),o=Array.isArray(t);return n?e.concat(t):o?[e].concat(t):[e,t]}var r=e("./invariant");t.exports=n},{"./invariant":131}],104:[function(e,t){"use strict";function n(e){for(var t=1,n=0,o=0;o<e.length;o++)t=(t+e.charCodeAt(o))%r,n=(n+t)%r;return t|n<<16}var r=65521;t.exports=n},{}],105:[function(e,t){"use strict";function n(e,t){var n=r.mergeProps(t,e.props);return!n.hasOwnProperty(i)&&e.props.hasOwnProperty(i)&&(n.children=e.props.children),e.constructor(n)}var r=e("./ReactPropTransferer"),o=e("./keyOf"),i=(e("./warning"),o({children:null}));t.exports=n},{"./ReactPropTransferer":70,"./keyOf":138,"./warning":153}],106:[function(e,t){function n(e,t){return e&&t?e===t?!0:r(e)?!1:r(t)?n(e,t.parentNode):e.contains?e.contains(t):e.compareDocumentPosition?!!(16&e.compareDocumentPosition(t)):!1:!1}var r=e("./isTextNode");t.exports=n},{"./isTextNode":135}],107:[function(e,t){function n(e,t,n,r,o,i){e=e||{};for(var a,s=[t,n,r,o,i],u=0;s[u];){a=s[u++];for(var c in a)e[c]=a[c];a.hasOwnProperty&&a.hasOwnProperty("toString")&&"undefined"!=typeof a.toString&&e.toString!==a.toString&&(e.toString=a.toString)}return e}t.exports=n},{}],108:[function(e,t){function n(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}function r(e){return n(e)?Array.isArray(e)?e.slice():o(e):[e]}var o=e("./toArray");t.exports=r},{"./toArray":150}],109:[function(e,t){"use strict";function n(e){var t=r.createClass({displayName:"ReactFullPageComponent"+(e.type.displayName||""),componentWillUnmount:function(){o(!1)},render:function(){return this.transferPropsTo(e(null,this.props.children))}});return t}var r=e("./ReactCompositeComponent"),o=e("./invariant");t.exports=n},{"./ReactCompositeComponent":38,"./invariant":131}],110:[function(e,t){function n(e){var t=e.match(c);return t&&t[1].toLowerCase()}function r(e,t){var r=u;s(!!u);var o=n(e),c=o&&a(o);if(c){r.innerHTML=c[1]+e+c[2];for(var l=c[0];l--;)r=r.lastChild}else r.innerHTML=e;var p=r.getElementsByTagName("script");p.length&&(s(t),i(p).forEach(t));for(var d=i(r.childNodes);r.lastChild;)r.removeChild(r.lastChild);return d}var o=e("./ExecutionEnvironment"),i=e("./createArrayFrom"),a=e("./getMarkupWrap"),s=e("./invariant"),u=o.canUseDOM?document.createElement("div"):null,c=/^\s*<(\w+)/;t.exports=r},{"./ExecutionEnvironment":22,"./createArrayFrom":108,"./getMarkupWrap":123,"./invariant":131}],111:[function(e,t){function n(e){return"object"==typeof e?Object.keys(e).filter(function(t){return e[t]}).join(" "):Array.prototype.join.call(arguments," ")}t.exports=n},{}],112:[function(e,t){"use strict";function n(e,t){var n=null==t||"boolean"==typeof t||""===t;if(n)return"";var r=isNaN(t);return r||0===t||o.hasOwnProperty(e)&&o[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}var r=e("./CSSProperty"),o=r.isUnitlessNumber;t.exports=n},{"./CSSProperty":4}],113:[function(e,t){function n(e){return function(){return e}}function r(){}var o=e("./copyProperties");o(r,{thatReturns:n,thatReturnsFalse:n(!1),thatReturnsTrue:n(!0),thatReturnsNull:n(null),thatReturnsThis:function(){return this},thatReturnsArgument:function(e){return e}}),t.exports=r},{"./copyProperties":107}],114:[function(e,t){"use strict";var n={};t.exports=n},{}],115:[function(e,t){"use strict";function n(e){return o[e]}function r(e){return(""+e).replace(i,n)}var o={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},i=/[&><"']/g;t.exports=r},{}],116:[function(e,t){"use strict";function n(e,t,n){var r=e,o=!r.hasOwnProperty(n);o&&null!=t&&(r[n]=t)}function r(e){if(null==e)return e;var t={};return o(e,n,t),t}{var o=e("./traverseAllChildren");e("./warning")}t.exports=r},{"./traverseAllChildren":151,"./warning":153}],117:[function(e,t){"use strict";function n(e){e.disabled||e.focus()}t.exports=n},{}],118:[function(e,t){"use strict";var n=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};t.exports=n},{}],119:[function(e,t){function n(){try{return document.activeElement||document.body}catch(e){return document.body}}t.exports=n},{}],120:[function(e,t){"use strict";function n(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n="charCode"in e?e.charCode:e.keyCode;return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":void r(!1)}var r=e("./invariant"),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=n},{"./invariant":131}],121:[function(e,t){"use strict";function n(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=o[e];return r?!!n[r]:!1}function r(){return n}var o={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=r},{}],122:[function(e,t){"use strict";function n(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}t.exports=n},{}],123:[function(e,t){function n(e){return o(!!i),p.hasOwnProperty(e)||(e="*"),a.hasOwnProperty(e)||(i.innerHTML="*"===e?"<link />":"<"+e+"></"+e+">",a[e]=!i.firstChild),a[e]?p[e]:null}var r=e("./ExecutionEnvironment"),o=e("./invariant"),i=r.canUseDOM?document.createElement("div"):null,a={circle:!0,defs:!0,ellipse:!0,g:!0,line:!0,linearGradient:!0,path:!0,polygon:!0,polyline:!0,radialGradient:!0,rect:!0,stop:!0,text:!0},s=[1,'<select multiple="true">',"</select>"],u=[1,"<table>","</table>"],c=[3,"<table><tbody><tr>","</tr></tbody></table>"],l=[1,"<svg>","</svg>"],p={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:s,option:s,caption:u,colgroup:u,tbody:u,tfoot:u,thead:u,td:c,th:c,circle:l,defs:l,ellipse:l,g:l,line:l,linearGradient:l,path:l,polygon:l,polyline:l,radialGradient:l,rect:l,stop:l,text:l};t.exports=n},{"./ExecutionEnvironment":22,"./invariant":131}],124:[function(e,t){"use strict";function n(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function r(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function o(e,t){for(var o=n(e),i=0,a=0;o;){if(3==o.nodeType){if(a=i+o.textContent.length,t>=i&&a>=t)return{node:o,offset:t-i};i=a}o=n(r(o))}}t.exports=o},{}],125:[function(e,t){"use strict";function n(e){return e?e.nodeType===r?e.documentElement:e.firstChild:null}var r=9;t.exports=n},{}],126:[function(e,t){"use strict";function n(){return!o&&r.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}var r=e("./ExecutionEnvironment"),o=null;t.exports=n},{"./ExecutionEnvironment":22}],127:[function(e,t){"use strict";function n(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=n},{}],128:[function(e,t){function n(e){return e.replace(r,"-$1").toLowerCase()}var r=/([A-Z])/g;t.exports=n},{}],129:[function(e,t){"use strict";function n(e){return r(e).replace(o,"-ms-")}var r=e("./hyphenate"),o=/^ms-/;t.exports=n},{"./hyphenate":128}],130:[function(e,t){"use strict";function n(e){return e&&"function"==typeof e.type&&"function"==typeof e.type.prototype.mountComponent&&"function"==typeof e.type.prototype.receiveComponent}function r(e){return o(n(e)),new e.type(e)}var o=e("./invariant");t.exports=r},{"./invariant":131}],131:[function(e,t){"use strict";var n=function(e,t,n,r,o,i,a,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],l=0;
    22 u=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return c[l++]}))}throw u.framesToPop=1,u}};t.exports=n},{}],132:[function(e,t){"use strict";function n(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,i=n in document;if(!i){var a=document.createElement("div");a.setAttribute(n,"return;"),i="function"==typeof a[n]}return!i&&r&&"wheel"===e&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}var r,o=e("./ExecutionEnvironment");o.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=n},{"./ExecutionEnvironment":22}],133:[function(e,t){function n(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=n},{}],134:[function(e,t){"use strict";function n(e){return e&&("INPUT"===e.nodeName&&r[e.type]||"TEXTAREA"===e.nodeName)}var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=n},{}],135:[function(e,t){function n(e){return r(e)&&3==e.nodeType}var r=e("./isNode");t.exports=n},{"./isNode":133}],136:[function(e,t){"use strict";function n(e){e||(e="");var t,n=arguments.length;if(n>1)for(var r=1;n>r;r++)t=arguments[r],t&&(e+=" "+t);return e}t.exports=n},{}],137:[function(e,t){"use strict";var n=e("./invariant"),r=function(e){var t,r={};n(e instanceof Object&&!Array.isArray(e));for(t in e)e.hasOwnProperty(t)&&(r[t]=t);return r};t.exports=r},{"./invariant":131}],138:[function(e,t){var n=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};t.exports=n},{}],139:[function(e,t){"use strict";function n(e,t,n){if(!e)return null;var r=0,o={};for(var i in e)e.hasOwnProperty(i)&&(o[i]=t.call(n,e[i],i,r++));return o}t.exports=n},{}],140:[function(e,t){"use strict";function n(e){var t={};return function(n){return t.hasOwnProperty(n)?t[n]:t[n]=e.call(this,n)}}t.exports=n},{}],141:[function(e,t){"use strict";var n=e("./mergeInto"),r=function(e,t){var r={};return n(r,e),n(r,t),r};t.exports=r},{"./mergeInto":143}],142:[function(e,t){"use strict";var n=e("./invariant"),r=e("./keyMirror"),o=36,i=function(e){return"object"!=typeof e||null===e},a={MAX_MERGE_DEPTH:o,isTerminal:i,normalizeMergeArg:function(e){return void 0===e||null===e?{}:e},checkMergeArrayArgs:function(e,t){n(Array.isArray(e)&&Array.isArray(t))},checkMergeObjectArgs:function(e,t){a.checkMergeObjectArg(e),a.checkMergeObjectArg(t)},checkMergeObjectArg:function(e){n(!i(e)&&!Array.isArray(e))},checkMergeIntoObjectArg:function(e){n(!(i(e)&&"function"!=typeof e||Array.isArray(e)))},checkMergeLevel:function(e){n(o>e)},checkArrayStrategy:function(e){n(void 0===e||e in a.ArrayStrategies)},ArrayStrategies:r({Clobber:!0,IndexByIndex:!0})};t.exports=a},{"./invariant":131,"./keyMirror":137}],143:[function(e,t){"use strict";function n(e,t){if(i(e),null!=t){o(t);for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}}var r=e("./mergeHelpers"),o=r.checkMergeObjectArg,i=r.checkMergeIntoObjectArg;t.exports=n},{"./mergeHelpers":142}],144:[function(e,t){"use strict";var n=function(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e.prototype[n]=t[n])};t.exports=n},{}],145:[function(e,t){"use strict";function n(e){r(e&&!/[^a-z0-9_]/.test(e))}var r=e("./invariant");t.exports=n},{"./invariant":131}],146:[function(e,t){"use strict";function n(e){return o(r.isValidDescriptor(e)),e}var r=e("./ReactDescriptor"),o=e("./invariant");t.exports=n},{"./ReactDescriptor":54,"./invariant":131}],147:[function(e,t){"use strict";var n=e("./ExecutionEnvironment"),r=function(e,t){e.innerHTML=t};if(n.canUseDOM){var o=document.createElement("div");o.innerHTML=" ",""===o.innerHTML&&(r=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),t.match(/^[ \r\n\t\f]/)||"<"===t[0]&&(-1!==t.indexOf("<noscript")||-1!==t.indexOf("<script")||-1!==t.indexOf("<style")||-1!==t.indexOf("<meta")||-1!==t.indexOf("<link"))){e.innerHTML=""+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}t.exports=r},{"./ExecutionEnvironment":22}],148:[function(e,t){"use strict";function n(e,t){if(e===t)return!0;var n;for(n in e)if(e.hasOwnProperty(n)&&(!t.hasOwnProperty(n)||e[n]!==t[n]))return!1;for(n in t)if(t.hasOwnProperty(n)&&!e.hasOwnProperty(n))return!1;return!0}t.exports=n},{}],149:[function(e,t){"use strict";function n(e,t){return e&&t&&e.type===t.type&&(e.props&&e.props.key)===(t.props&&t.props.key)&&e._owner===t._owner?!0:!1}t.exports=n},{}],150:[function(e,t){function n(e){var t=e.length;if(r(!Array.isArray(e)&&("object"==typeof e||"function"==typeof e)),r("number"==typeof t),r(0===t||t-1 in e),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(n){}for(var o=Array(t),i=0;t>i;i++)o[i]=e[i];return o}var r=e("./invariant");t.exports=n},{"./invariant":131}],151:[function(e,t){"use strict";function n(e){return d[e]}function r(e,t){return e&&e.props&&null!=e.props.key?i(e.props.key):t.toString(36)}function o(e){return(""+e).replace(f,n)}function i(e){return"$"+o(e)}function a(e,t,n){return null==e?0:h(e,"",0,t,n)}var s=e("./ReactInstanceHandles"),u=e("./ReactTextComponent"),c=e("./invariant"),l=s.SEPARATOR,p=":",d={"=":"=0",".":"=1",":":"=2"},f=/[=.:]/g,h=function(e,t,n,o,a){var s=0;if(Array.isArray(e))for(var d=0;d<e.length;d++){var f=e[d],v=t+(t?p:l)+r(f,d),m=n+s;s+=h(f,v,m,o,a)}else{var g=typeof e,y=""===t,C=y?l+r(e,0):t;if(null==e||"boolean"===g)o(a,null,C,n),s=1;else if(e.type&&e.type.prototype&&e.type.prototype.mountComponentIntoNode)o(a,e,C,n),s=1;else if("object"===g){c(!e||1!==e.nodeType);for(var E in e)e.hasOwnProperty(E)&&(s+=h(e[E],t+(t?p:l)+i(E)+p+r(e[E],0),n+s,o,a))}else if("string"===g){var R=u(e);o(a,R,C,n),s+=1}else if("number"===g){var M=u(""+e);o(a,M,C,n),s+=1}}return s};t.exports=a},{"./ReactInstanceHandles":62,"./ReactTextComponent":80,"./invariant":131}],152:[function(e,t){"use strict";function n(e){return Array.isArray(e)?e.concat():e&&"object"==typeof e?i(new e.constructor,e):e}function r(e,t,n){s(Array.isArray(e));var r=t[n];s(Array.isArray(r))}function o(e,t){if(s("object"==typeof t),t.hasOwnProperty(p))return s(1===Object.keys(t).length),t[p];var a=n(e);if(t.hasOwnProperty(d)){var h=t[d];s(h&&"object"==typeof h),s(a&&"object"==typeof a),i(a,t[d])}t.hasOwnProperty(u)&&(r(e,t,u),t[u].forEach(function(e){a.push(e)})),t.hasOwnProperty(c)&&(r(e,t,c),t[c].forEach(function(e){a.unshift(e)})),t.hasOwnProperty(l)&&(s(Array.isArray(e)),s(Array.isArray(t[l])),t[l].forEach(function(e){s(Array.isArray(e)),a.splice.apply(a,e)})),t.hasOwnProperty(f)&&(s("function"==typeof t[f]),a=t[f](a));for(var m in t)v.hasOwnProperty(m)&&v[m]||(a[m]=o(e[m],t[m]));return a}var i=e("./copyProperties"),a=e("./keyOf"),s=e("./invariant"),u=a({$push:null}),c=a({$unshift:null}),l=a({$splice:null}),p=a({$set:null}),d=a({$merge:null}),f=a({$apply:null}),h=[u,c,l,p,d,f],v={};h.forEach(function(e){v[e]=!0}),t.exports=o},{"./copyProperties":107,"./invariant":131,"./keyOf":138}],153:[function(e,t){"use strict";var n=e("./emptyFunction"),r=n;t.exports=r},{"./emptyFunction":113}]},{},[85])(85)});
     12!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self),t.React=e()}}(function(){return function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[a]={exports:{}};t[a][0].call(l.exports,function(e){var n=t[a][1][e];return o(n?n:e)},l,l.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t){"use strict";var n=e("./LinkedStateMixin"),r=e("./React"),o=e("./ReactComponentWithPureRenderMixin"),i=e("./ReactCSSTransitionGroup"),a=e("./ReactTransitionGroup"),s=e("./ReactUpdates"),u=e("./cx"),c=e("./cloneWithProps"),l=e("./update");r.addons={CSSTransitionGroup:i,LinkedStateMixin:n,PureRenderMixin:o,TransitionGroup:a,batchedUpdates:s.batchedUpdates,classSet:u,cloneWithProps:c,update:l},t.exports=r},{"./LinkedStateMixin":25,"./React":31,"./ReactCSSTransitionGroup":34,"./ReactComponentWithPureRenderMixin":39,"./ReactTransitionGroup":87,"./ReactUpdates":88,"./cloneWithProps":110,"./cx":115,"./update":154}],2:[function(e,t){"use strict";var n=e("./focusNode"),r={componentDidMount:function(){this.props.autoFocus&&n(this.getDOMNode())}};t.exports=r},{"./focusNode":122}],3:[function(e,t){"use strict";function n(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function r(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}var o=e("./EventConstants"),i=e("./EventPropagators"),a=e("./ExecutionEnvironment"),s=e("./SyntheticInputEvent"),u=e("./keyOf"),c=a.canUseDOM&&"TextEvent"in window&&!("documentMode"in document||n()),l=32,p=String.fromCharCode(l),d=o.topLevelTypes,f={beforeInput:{phasedRegistrationNames:{bubbled:u({onBeforeInput:null}),captured:u({onBeforeInputCapture:null})},dependencies:[d.topCompositionEnd,d.topKeyPress,d.topTextInput,d.topPaste]}},h=null,m=!1,v={eventTypes:f,extractEvents:function(e,t,n,o){var a;if(c)switch(e){case d.topKeyPress:var u=o.which;if(u!==l)return;m=!0,a=p;break;case d.topTextInput:if(a=o.data,a===p&&m)return;break;default:return}else{switch(e){case d.topPaste:h=null;break;case d.topKeyPress:o.which&&!r(o)&&(h=String.fromCharCode(o.which));break;case d.topCompositionEnd:h=o.data}if(null===h)return;a=h}if(a){var v=s.getPooled(f.beforeInput,n,o);return v.data=a,h=null,i.accumulateTwoPhaseDispatches(v),v}}};t.exports=v},{"./EventConstants":17,"./EventPropagators":22,"./ExecutionEnvironment":23,"./SyntheticInputEvent":98,"./keyOf":144}],4:[function(e,t){var n=e("./invariant"),r={addClass:function(e,t){return n(!/\s/.test(t)),t&&(e.classList?e.classList.add(t):r.hasClass(e,t)||(e.className=e.className+" "+t)),e},removeClass:function(e,t){return n(!/\s/.test(t)),t&&(e.classList?e.classList.remove(t):r.hasClass(e,t)&&(e.className=e.className.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,""))),e},conditionClass:function(e,t,n){return(n?r.addClass:r.removeClass)(e,t)},hasClass:function(e,t){return n(!/\s/.test(t)),e.classList?!!t&&e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}};t.exports=r},{"./invariant":137}],5:[function(e,t){"use strict";function n(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var r={columnCount:!0,fillOpacity:!0,flex:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},o=["Webkit","ms","Moz","O"];Object.keys(r).forEach(function(e){o.forEach(function(t){r[n(t,e)]=r[e]})});var i={background:{backgroundImage:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundColor:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0}},a={isUnitlessNumber:r,shorthandPropertyExpansions:i};t.exports=a},{}],6:[function(e,t){"use strict";var n=e("./CSSProperty"),r=e("./ExecutionEnvironment"),o=(e("./camelizeStyleName"),e("./dangerousStyleValue")),i=e("./hyphenateStyleName"),a=e("./memoizeStringOnly"),s=(e("./warning"),a(function(e){return i(e)})),u="cssFloat";r.canUseDOM&&void 0===document.documentElement.style.cssFloat&&(u="styleFloat");var c={createMarkupForStyles:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];null!=r&&(t+=s(n)+":",t+=o(n,r)+";")}return t||null},setValueForStyles:function(e,t){var r=e.style;for(var i in t)if(t.hasOwnProperty(i)){var a=o(i,t[i]);if("float"===i&&(i=u),a)r[i]=a;else{var s=n.shorthandPropertyExpansions[i];if(s)for(var c in s)r[c]="";else r[i]=""}}}};t.exports=c},{"./CSSProperty":5,"./ExecutionEnvironment":23,"./camelizeStyleName":109,"./dangerousStyleValue":116,"./hyphenateStyleName":135,"./memoizeStringOnly":146,"./warning":155}],7:[function(e,t){"use strict";function n(){this._callbacks=null,this._contexts=null}var r=e("./PooledClass"),o=e("./Object.assign"),i=e("./invariant");o(n.prototype,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,t=this._contexts;if(e){i(e.length===t.length),this._callbacks=null,this._contexts=null;for(var n=0,r=e.length;r>n;n++)e[n].call(t[n]);e.length=0,t.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),r.addPoolingTo(n),t.exports=n},{"./Object.assign":29,"./PooledClass":30,"./invariant":137}],8:[function(e,t){"use strict";function n(e){return"SELECT"===e.nodeName||"INPUT"===e.nodeName&&"file"===e.type}function r(e){var t=M.getPooled(P.change,w,e);E.accumulateTwoPhaseDispatches(t),R.batchedUpdates(o,t)}function o(e){g.enqueueEvents(e),g.processEventQueue()}function i(e,t){T=e,w=t,T.attachEvent("onchange",r)}function a(){T&&(T.detachEvent("onchange",r),T=null,w=null)}function s(e,t,n){return e===x.topChange?n:void 0}function u(e,t,n){e===x.topFocus?(a(),i(t,n)):e===x.topBlur&&a()}function c(e,t){T=e,w=t,_=e.value,S=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(T,"value",k),T.attachEvent("onpropertychange",p)}function l(){T&&(delete T.value,T.detachEvent("onpropertychange",p),T=null,w=null,_=null,S=null)}function p(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==_&&(_=t,r(e))}}function d(e,t,n){return e===x.topInput?n:void 0}function f(e,t,n){e===x.topFocus?(l(),c(t,n)):e===x.topBlur&&l()}function h(e){return e!==x.topSelectionChange&&e!==x.topKeyUp&&e!==x.topKeyDown||!T||T.value===_?void 0:(_=T.value,w)}function m(e){return"INPUT"===e.nodeName&&("checkbox"===e.type||"radio"===e.type)}function v(e,t,n){return e===x.topClick?n:void 0}var y=e("./EventConstants"),g=e("./EventPluginHub"),E=e("./EventPropagators"),C=e("./ExecutionEnvironment"),R=e("./ReactUpdates"),M=e("./SyntheticEvent"),b=e("./isEventSupported"),O=e("./isTextInputElement"),D=e("./keyOf"),x=y.topLevelTypes,P={change:{phasedRegistrationNames:{bubbled:D({onChange:null}),captured:D({onChangeCapture:null})},dependencies:[x.topBlur,x.topChange,x.topClick,x.topFocus,x.topInput,x.topKeyDown,x.topKeyUp,x.topSelectionChange]}},T=null,w=null,_=null,S=null,N=!1;C.canUseDOM&&(N=b("change")&&(!("documentMode"in document)||document.documentMode>8));var I=!1;C.canUseDOM&&(I=b("input")&&(!("documentMode"in document)||document.documentMode>9));var k={get:function(){return S.get.call(this)},set:function(e){_=""+e,S.set.call(this,e)}},A={eventTypes:P,extractEvents:function(e,t,r,o){var i,a;if(n(t)?N?i=s:a=u:O(t)?I?i=d:(i=h,a=f):m(t)&&(i=v),i){var c=i(e,t,r);if(c){var l=M.getPooled(P.change,c,o);return E.accumulateTwoPhaseDispatches(l),l}}a&&a(e,t,r)}};t.exports=A},{"./EventConstants":17,"./EventPluginHub":19,"./EventPropagators":22,"./ExecutionEnvironment":23,"./ReactUpdates":88,"./SyntheticEvent":96,"./isEventSupported":138,"./isTextInputElement":140,"./keyOf":144}],9:[function(e,t){"use strict";var n=0,r={createReactRootIndex:function(){return n++}};t.exports=r},{}],10:[function(e,t){"use strict";function n(e){switch(e){case y.topCompositionStart:return E.compositionStart;case y.topCompositionEnd:return E.compositionEnd;case y.topCompositionUpdate:return E.compositionUpdate}}function r(e,t){return e===y.topKeyDown&&t.keyCode===h}function o(e,t){switch(e){case y.topKeyUp:return-1!==f.indexOf(t.keyCode);case y.topKeyDown:return t.keyCode!==h;case y.topKeyPress:case y.topMouseDown:case y.topBlur:return!0;default:return!1}}function i(e){this.root=e,this.startSelection=c.getSelection(e),this.startValue=this.getText()}var a=e("./EventConstants"),s=e("./EventPropagators"),u=e("./ExecutionEnvironment"),c=e("./ReactInputSelection"),l=e("./SyntheticCompositionEvent"),p=e("./getTextContentAccessor"),d=e("./keyOf"),f=[9,13,27,32],h=229,m=u.canUseDOM&&"CompositionEvent"in window,v=!m||"documentMode"in document&&document.documentMode>8&&document.documentMode<=11,y=a.topLevelTypes,g=null,E={compositionEnd:{phasedRegistrationNames:{bubbled:d({onCompositionEnd:null}),captured:d({onCompositionEndCapture:null})},dependencies:[y.topBlur,y.topCompositionEnd,y.topKeyDown,y.topKeyPress,y.topKeyUp,y.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:d({onCompositionStart:null}),captured:d({onCompositionStartCapture:null})},dependencies:[y.topBlur,y.topCompositionStart,y.topKeyDown,y.topKeyPress,y.topKeyUp,y.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:d({onCompositionUpdate:null}),captured:d({onCompositionUpdateCapture:null})},dependencies:[y.topBlur,y.topCompositionUpdate,y.topKeyDown,y.topKeyPress,y.topKeyUp,y.topMouseDown]}};i.prototype.getText=function(){return this.root.value||this.root[p()]},i.prototype.getData=function(){var e=this.getText(),t=this.startSelection.start,n=this.startValue.length-this.startSelection.end;return e.substr(t,e.length-n-t)};var C={eventTypes:E,extractEvents:function(e,t,a,u){var c,p;if(m?c=n(e):g?o(e,u)&&(c=E.compositionEnd):r(e,u)&&(c=E.compositionStart),v&&(g||c!==E.compositionStart?c===E.compositionEnd&&g&&(p=g.getData(),g=null):g=new i(t)),c){var d=l.getPooled(c,a,u);return p&&(d.data=p),s.accumulateTwoPhaseDispatches(d),d}}};t.exports=C},{"./EventConstants":17,"./EventPropagators":22,"./ExecutionEnvironment":23,"./ReactInputSelection":63,"./SyntheticCompositionEvent":94,"./getTextContentAccessor":132,"./keyOf":144}],11:[function(e,t){"use strict";function n(e,t,n){e.insertBefore(t,e.childNodes[n]||null)}var r,o=e("./Danger"),i=e("./ReactMultiChildUpdateTypes"),a=e("./getTextContentAccessor"),s=e("./invariant"),u=a();r="textContent"===u?function(e,t){e.textContent=t}:function(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);if(t){var n=e.ownerDocument||document;e.appendChild(n.createTextNode(t))}};var c={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,updateTextContent:r,processUpdates:function(e,t){for(var a,u=null,c=null,l=0;a=e[l];l++)if(a.type===i.MOVE_EXISTING||a.type===i.REMOVE_NODE){var p=a.fromIndex,d=a.parentNode.childNodes[p],f=a.parentID;s(d),u=u||{},u[f]=u[f]||[],u[f][p]=d,c=c||[],c.push(d)}var h=o.dangerouslyRenderMarkup(t);if(c)for(var m=0;m<c.length;m++)c[m].parentNode.removeChild(c[m]);for(var v=0;a=e[v];v++)switch(a.type){case i.INSERT_MARKUP:n(a.parentNode,h[a.markupIndex],a.toIndex);break;case i.MOVE_EXISTING:n(a.parentNode,u[a.parentID][a.fromIndex],a.toIndex);break;case i.TEXT_CONTENT:r(a.parentNode,a.textContent);break;case i.REMOVE_NODE:}}};t.exports=c},{"./Danger":14,"./ReactMultiChildUpdateTypes":70,"./getTextContentAccessor":132,"./invariant":137}],12:[function(e,t){"use strict";function n(e,t){return(e&t)===t}var r=e("./invariant"),o={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var t=e.Properties||{},i=e.DOMAttributeNames||{},s=e.DOMPropertyNames||{},u=e.DOMMutationMethods||{};e.isCustomAttribute&&a._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var c in t){r(!a.isStandardName.hasOwnProperty(c)),a.isStandardName[c]=!0;var l=c.toLowerCase();if(a.getPossibleStandardName[l]=c,i.hasOwnProperty(c)){var p=i[c];a.getPossibleStandardName[p]=c,a.getAttributeName[c]=p}else a.getAttributeName[c]=l;a.getPropertyName[c]=s.hasOwnProperty(c)?s[c]:c,a.getMutationMethod[c]=u.hasOwnProperty(c)?u[c]:null;var d=t[c];a.mustUseAttribute[c]=n(d,o.MUST_USE_ATTRIBUTE),a.mustUseProperty[c]=n(d,o.MUST_USE_PROPERTY),a.hasSideEffects[c]=n(d,o.HAS_SIDE_EFFECTS),a.hasBooleanValue[c]=n(d,o.HAS_BOOLEAN_VALUE),a.hasNumericValue[c]=n(d,o.HAS_NUMERIC_VALUE),a.hasPositiveNumericValue[c]=n(d,o.HAS_POSITIVE_NUMERIC_VALUE),a.hasOverloadedBooleanValue[c]=n(d,o.HAS_OVERLOADED_BOOLEAN_VALUE),r(!a.mustUseAttribute[c]||!a.mustUseProperty[c]),r(a.mustUseProperty[c]||!a.hasSideEffects[c]),r(!!a.hasBooleanValue[c]+!!a.hasNumericValue[c]+!!a.hasOverloadedBooleanValue[c]<=1)}}},i={},a={ID_ATTRIBUTE_NAME:"data-reactid",isStandardName:{},getPossibleStandardName:{},getAttributeName:{},getPropertyName:{},getMutationMethod:{},mustUseAttribute:{},mustUseProperty:{},hasSideEffects:{},hasBooleanValue:{},hasNumericValue:{},hasPositiveNumericValue:{},hasOverloadedBooleanValue:{},_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<a._isCustomAttributeFunctions.length;t++){var n=a._isCustomAttributeFunctions[t];if(n(e))return!0}return!1},getDefaultValueForProperty:function(e,t){var n,r=i[e];return r||(i[e]=r={}),t in r||(n=document.createElement(e),r[t]=n[t]),r[t]},injection:o};t.exports=a},{"./invariant":137}],13:[function(e,t){"use strict";function n(e,t){return null==t||r.hasBooleanValue[e]&&!t||r.hasNumericValue[e]&&isNaN(t)||r.hasPositiveNumericValue[e]&&1>t||r.hasOverloadedBooleanValue[e]&&t===!1}var r=e("./DOMProperty"),o=e("./escapeTextForBrowser"),i=e("./memoizeStringOnly"),a=(e("./warning"),i(function(e){return o(e)+'="'})),s={createMarkupForID:function(e){return a(r.ID_ATTRIBUTE_NAME)+o(e)+'"'},createMarkupForProperty:function(e,t){if(r.isStandardName.hasOwnProperty(e)&&r.isStandardName[e]){if(n(e,t))return"";var i=r.getAttributeName[e];return r.hasBooleanValue[e]||r.hasOverloadedBooleanValue[e]&&t===!0?o(i):a(i)+o(t)+'"'}return r.isCustomAttribute(e)?null==t?"":a(e)+o(t)+'"':null},setValueForProperty:function(e,t,o){if(r.isStandardName.hasOwnProperty(t)&&r.isStandardName[t]){var i=r.getMutationMethod[t];if(i)i(e,o);else if(n(t,o))this.deleteValueForProperty(e,t);else if(r.mustUseAttribute[t])e.setAttribute(r.getAttributeName[t],""+o);else{var a=r.getPropertyName[t];r.hasSideEffects[t]&&""+e[a]==""+o||(e[a]=o)}}else r.isCustomAttribute(t)&&(null==o?e.removeAttribute(t):e.setAttribute(t,""+o))},deleteValueForProperty:function(e,t){if(r.isStandardName.hasOwnProperty(t)&&r.isStandardName[t]){var n=r.getMutationMethod[t];if(n)n(e,void 0);else if(r.mustUseAttribute[t])e.removeAttribute(r.getAttributeName[t]);else{var o=r.getPropertyName[t],i=r.getDefaultValueForProperty(e.nodeName,o);r.hasSideEffects[t]&&""+e[o]===i||(e[o]=i)}}else r.isCustomAttribute(t)&&e.removeAttribute(t)}};t.exports=s},{"./DOMProperty":12,"./escapeTextForBrowser":120,"./memoizeStringOnly":146,"./warning":155}],14:[function(e,t){"use strict";function n(e){return e.substring(1,e.indexOf(" "))}var r=e("./ExecutionEnvironment"),o=e("./createNodesFromMarkup"),i=e("./emptyFunction"),a=e("./getMarkupWrap"),s=e("./invariant"),u=/^(<[^ \/>]+)/,c="data-danger-index",l={dangerouslyRenderMarkup:function(e){s(r.canUseDOM);for(var t,l={},p=0;p<e.length;p++)s(e[p]),t=n(e[p]),t=a(t)?t:"*",l[t]=l[t]||[],l[t][p]=e[p];var d=[],f=0;for(t in l)if(l.hasOwnProperty(t)){var h=l[t];for(var m in h)if(h.hasOwnProperty(m)){var v=h[m];h[m]=v.replace(u,"$1 "+c+'="'+m+'" ')}var y=o(h.join(""),i);for(p=0;p<y.length;++p){var g=y[p];g.hasAttribute&&g.hasAttribute(c)&&(m=+g.getAttribute(c),g.removeAttribute(c),s(!d.hasOwnProperty(m)),d[m]=g,f+=1)}}return s(f===d.length),s(d.length===e.length),d},dangerouslyReplaceNodeWithMarkup:function(e,t){s(r.canUseDOM),s(t),s("html"!==e.tagName.toLowerCase());var n=o(t,i)[0];e.parentNode.replaceChild(n,e)}};t.exports=l},{"./ExecutionEnvironment":23,"./createNodesFromMarkup":114,"./emptyFunction":118,"./getMarkupWrap":129,"./invariant":137}],15:[function(e,t){"use strict";var n=e("./keyOf"),r=[n({ResponderEventPlugin:null}),n({SimpleEventPlugin:null}),n({TapEventPlugin:null}),n({EnterLeaveEventPlugin:null}),n({ChangeEventPlugin:null}),n({SelectEventPlugin:null}),n({CompositionEventPlugin:null}),n({BeforeInputEventPlugin:null}),n({AnalyticsEventPlugin:null}),n({MobileSafariClickEventPlugin:null})];t.exports=r},{"./keyOf":144}],16:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./EventPropagators"),o=e("./SyntheticMouseEvent"),i=e("./ReactMount"),a=e("./keyOf"),s=n.topLevelTypes,u=i.getFirstReactDOM,c={mouseEnter:{registrationName:a({onMouseEnter:null}),dependencies:[s.topMouseOut,s.topMouseOver]},mouseLeave:{registrationName:a({onMouseLeave:null}),dependencies:[s.topMouseOut,s.topMouseOver]}},l=[null,null],p={eventTypes:c,extractEvents:function(e,t,n,a){if(e===s.topMouseOver&&(a.relatedTarget||a.fromElement))return null;if(e!==s.topMouseOut&&e!==s.topMouseOver)return null;var p;if(t.window===t)p=t;else{var d=t.ownerDocument;p=d?d.defaultView||d.parentWindow:window}var f,h;if(e===s.topMouseOut?(f=t,h=u(a.relatedTarget||a.toElement)||p):(f=p,h=t),f===h)return null;var m=f?i.getID(f):"",v=h?i.getID(h):"",y=o.getPooled(c.mouseLeave,m,a);y.type="mouseleave",y.target=f,y.relatedTarget=h;var g=o.getPooled(c.mouseEnter,v,a);return g.type="mouseenter",g.target=h,g.relatedTarget=f,r.accumulateEnterLeaveDispatches(y,g,m,v),l[0]=y,l[1]=g,l}};t.exports=p},{"./EventConstants":17,"./EventPropagators":22,"./ReactMount":68,"./SyntheticMouseEvent":100,"./keyOf":144}],17:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({bubbled:null,captured:null}),o=n({topBlur:null,topChange:null,topClick:null,topCompositionEnd:null,topCompositionStart:null,topCompositionUpdate:null,topContextMenu:null,topCopy:null,topCut:null,topDoubleClick:null,topDrag:null,topDragEnd:null,topDragEnter:null,topDragExit:null,topDragLeave:null,topDragOver:null,topDragStart:null,topDrop:null,topError:null,topFocus:null,topInput:null,topKeyDown:null,topKeyPress:null,topKeyUp:null,topLoad:null,topMouseDown:null,topMouseMove:null,topMouseOut:null,topMouseOver:null,topMouseUp:null,topPaste:null,topReset:null,topScroll:null,topSelectionChange:null,topSubmit:null,topTextInput:null,topTouchCancel:null,topTouchEnd:null,topTouchMove:null,topTouchStart:null,topWheel:null}),i={topLevelTypes:o,PropagationPhases:r};t.exports=i},{"./keyMirror":143}],18:[function(e,t){var n=e("./emptyFunction"),r={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,r){return e.addEventListener?(e.addEventListener(t,r,!0),{remove:function(){e.removeEventListener(t,r,!0)}}):{remove:n}},registerDefault:function(){}};t.exports=r},{"./emptyFunction":118}],19:[function(e,t){"use strict";var n=e("./EventPluginRegistry"),r=e("./EventPluginUtils"),o=e("./accumulateInto"),i=e("./forEachAccumulated"),a=e("./invariant"),s={},u=null,c=function(e){if(e){var t=r.executeDispatch,o=n.getPluginModuleForEvent(e);o&&o.executeDispatch&&(t=o.executeDispatch),r.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e)}},l=null,p={injection:{injectMount:r.injection.injectMount,injectInstanceHandle:function(e){l=e},getInstanceHandle:function(){return l},injectEventPluginOrder:n.injectEventPluginOrder,injectEventPluginsByName:n.injectEventPluginsByName},eventNameDispatchConfigs:n.eventNameDispatchConfigs,registrationNameModules:n.registrationNameModules,putListener:function(e,t,n){a(!n||"function"==typeof n);var r=s[t]||(s[t]={});r[e]=n},getListener:function(e,t){var n=s[t];return n&&n[e]},deleteListener:function(e,t){var n=s[t];n&&delete n[e]},deleteAllListeners:function(e){for(var t in s)delete s[t][e]},extractEvents:function(e,t,r,i){for(var a,s=n.plugins,u=0,c=s.length;c>u;u++){var l=s[u];if(l){var p=l.extractEvents(e,t,r,i);p&&(a=o(a,p))}}return a},enqueueEvents:function(e){e&&(u=o(u,e))},processEventQueue:function(){var e=u;u=null,i(e,c),a(!u)},__purge:function(){s={}},__getListenerBank:function(){return s}};t.exports=p},{"./EventPluginRegistry":20,"./EventPluginUtils":21,"./accumulateInto":106,"./forEachAccumulated":123,"./invariant":137}],20:[function(e,t){"use strict";function n(){if(a)for(var e in s){var t=s[e],n=a.indexOf(e);if(i(n>-1),!u.plugins[n]){i(t.extractEvents),u.plugins[n]=t;var o=t.eventTypes;for(var c in o)i(r(o[c],t,c))}}}function r(e,t,n){i(!u.eventNameDispatchConfigs.hasOwnProperty(n)),u.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var a in r)if(r.hasOwnProperty(a)){var s=r[a];o(s,t,n)}return!0}return e.registrationName?(o(e.registrationName,t,n),!0):!1}function o(e,t,n){i(!u.registrationNameModules[e]),u.registrationNameModules[e]=t,u.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var i=e("./invariant"),a=null,s={},u={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){i(!a),a=Array.prototype.slice.call(e),n()},injectEventPluginsByName:function(e){var t=!1;for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];s.hasOwnProperty(r)&&s[r]===o||(i(!s[r]),s[r]=o,t=!0)}t&&n()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return u.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=u.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){a=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];u.plugins.length=0;var t=u.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=u.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=u},{"./invariant":137}],21:[function(e,t){"use strict";function n(e){return e===m.topMouseUp||e===m.topTouchEnd||e===m.topTouchCancel}function r(e){return e===m.topMouseMove||e===m.topTouchMove}function o(e){return e===m.topMouseDown||e===m.topTouchStart}function i(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)t(e,n[o],r[o]);else n&&t(e,n,r)}function a(e,t,n){e.currentTarget=h.Mount.getNode(n);var r=t(e,n);return e.currentTarget=null,r}function s(e,t){i(e,t),e._dispatchListeners=null,e._dispatchIDs=null}function u(e){var t=e._dispatchListeners,n=e._dispatchIDs;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}function c(e){var t=u(e);return e._dispatchIDs=null,e._dispatchListeners=null,t}function l(e){var t=e._dispatchListeners,n=e._dispatchIDs;f(!Array.isArray(t));var r=t?t(e,n):null;return e._dispatchListeners=null,e._dispatchIDs=null,r}function p(e){return!!e._dispatchListeners}var d=e("./EventConstants"),f=e("./invariant"),h={Mount:null,injectMount:function(e){h.Mount=e}},m=d.topLevelTypes,v={isEndish:n,isMoveish:r,isStartish:o,executeDirectDispatch:l,executeDispatch:a,executeDispatchesInOrder:s,executeDispatchesInOrderStopAtTrue:c,hasDispatches:p,injection:h,useTouchEvents:!1};t.exports=v},{"./EventConstants":17,"./invariant":137}],22:[function(e,t){"use strict";function n(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return m(e,r)}function r(e,t,r){var o=t?h.bubbled:h.captured,i=n(e,r,o);i&&(r._dispatchListeners=d(r._dispatchListeners,i),r._dispatchIDs=d(r._dispatchIDs,e))}function o(e){e&&e.dispatchConfig.phasedRegistrationNames&&p.injection.getInstanceHandle().traverseTwoPhase(e.dispatchMarker,r,e)}function i(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=m(e,r);o&&(n._dispatchListeners=d(n._dispatchListeners,o),n._dispatchIDs=d(n._dispatchIDs,e))}}function a(e){e&&e.dispatchConfig.registrationName&&i(e.dispatchMarker,null,e)}function s(e){f(e,o)}function u(e,t,n,r){p.injection.getInstanceHandle().traverseEnterLeave(n,r,i,e,t)}function c(e){f(e,a)}var l=e("./EventConstants"),p=e("./EventPluginHub"),d=e("./accumulateInto"),f=e("./forEachAccumulated"),h=l.PropagationPhases,m=p.getListener,v={accumulateTwoPhaseDispatches:s,accumulateDirectDispatches:c,accumulateEnterLeaveDispatches:u};t.exports=v},{"./EventConstants":17,"./EventPluginHub":19,"./accumulateInto":106,"./forEachAccumulated":123}],23:[function(e,t){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};t.exports=r},{}],24:[function(e,t){"use strict";var n,r=e("./DOMProperty"),o=e("./ExecutionEnvironment"),i=r.injection.MUST_USE_ATTRIBUTE,a=r.injection.MUST_USE_PROPERTY,s=r.injection.HAS_BOOLEAN_VALUE,u=r.injection.HAS_SIDE_EFFECTS,c=r.injection.HAS_NUMERIC_VALUE,l=r.injection.HAS_POSITIVE_NUMERIC_VALUE,p=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(o.canUseDOM){var d=document.implementation;n=d&&d.hasFeature&&d.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var f={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:i|s,allowTransparency:i,alt:null,async:s,autoComplete:null,autoPlay:s,cellPadding:null,cellSpacing:null,charSet:i,checked:a|s,classID:i,className:n?i:a,cols:i|l,colSpan:null,content:null,contentEditable:null,contextMenu:i,controls:a|s,coords:null,crossOrigin:null,data:null,dateTime:i,defer:s,dir:null,disabled:i|s,download:p,draggable:null,encType:null,form:i,formNoValidate:s,frameBorder:i,height:i,hidden:i|s,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:a,label:null,lang:null,list:i,loop:a|s,manifest:i,max:null,maxLength:i,media:i,mediaGroup:null,method:null,min:null,multiple:a|s,muted:a|s,name:null,noValidate:s,open:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:a|s,rel:null,required:s,role:i,rows:i|l,rowSpan:null,sandbox:null,scope:null,scrolling:null,seamless:i|s,selected:a|s,shape:null,size:i|l,sizes:i,span:l,spellCheck:null,src:null,srcDoc:a,srcSet:i,start:c,step:null,style:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:a|u,width:i,wmode:i,autoCapitalize:null,autoCorrect:null,itemProp:i,itemScope:i|s,itemType:i,property:null},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",encType:"enctype",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};t.exports=f},{"./DOMProperty":12,"./ExecutionEnvironment":23}],25:[function(e,t){"use strict";var n=e("./ReactLink"),r=e("./ReactStateSetters"),o={linkState:function(e){return new n(this.state[e],r.createStateKeySetter(this,e))}};t.exports=o},{"./ReactLink":66,"./ReactStateSetters":83}],26:[function(e,t){"use strict";function n(e){u(null==e.props.checkedLink||null==e.props.valueLink)}function r(e){n(e),u(null==e.props.value&&null==e.props.onChange)}function o(e){n(e),u(null==e.props.checked&&null==e.props.onChange)}function i(e){this.props.valueLink.requestChange(e.target.value)}function a(e){this.props.checkedLink.requestChange(e.target.checked)}var s=e("./ReactPropTypes"),u=e("./invariant"),c={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},l={Mixin:{propTypes:{value:function(e,t){return!e[t]||c[e.type]||e.onChange||e.readOnly||e.disabled?void 0:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t){return!e[t]||e.onChange||e.readOnly||e.disabled?void 0:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:s.func}},getValue:function(e){return e.props.valueLink?(r(e),e.props.valueLink.value):e.props.value},getChecked:function(e){return e.props.checkedLink?(o(e),e.props.checkedLink.value):e.props.checked},getOnChange:function(e){return e.props.valueLink?(r(e),i):e.props.checkedLink?(o(e),a):e.props.onChange}};t.exports=l},{"./ReactPropTypes":77,"./invariant":137}],27:[function(e,t){"use strict";function n(e){e.remove()}var r=e("./ReactBrowserEventEmitter"),o=e("./accumulateInto"),i=e("./forEachAccumulated"),a=e("./invariant"),s={trapBubbledEvent:function(e,t){a(this.isMounted());var n=r.trapBubbledEvent(e,t,this.getDOMNode());this._localEventListeners=o(this._localEventListeners,n)},componentWillUnmount:function(){this._localEventListeners&&i(this._localEventListeners,n)}};t.exports=s},{"./ReactBrowserEventEmitter":33,"./accumulateInto":106,"./forEachAccumulated":123,"./invariant":137}],28:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./emptyFunction"),o=n.topLevelTypes,i={eventTypes:null,extractEvents:function(e,t,n,i){if(e===o.topTouchStart){var a=i.target;a&&!a.onclick&&(a.onclick=r)}}};t.exports=i},{"./EventConstants":17,"./emptyFunction":118}],29:[function(e,t){function n(e){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var t=Object(e),n=Object.prototype.hasOwnProperty,r=1;r<arguments.length;r++){var o=arguments[r];if(null!=o){var i=Object(o);for(var a in i)n.call(i,a)&&(t[a]=i[a])}}return t}t.exports=n},{}],30:[function(e,t){"use strict";var n=e("./invariant"),r=function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)},o=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},i=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},a=function(e,t,n,r,o){var i=this;if(i.instancePool.length){var a=i.instancePool.pop();return i.call(a,e,t,n,r,o),a}return new i(e,t,n,r,o)},s=function(e){var t=this;n(e instanceof t),e.destructor&&e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},u=10,c=r,l=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||c,n.poolSize||(n.poolSize=u),n.release=s,n},p={addPoolingTo:l,oneArgumentPooler:r,twoArgumentPooler:o,threeArgumentPooler:i,fiveArgumentPooler:a};t.exports=p},{"./invariant":137}],31:[function(e,t){"use strict";var n=e("./DOMPropertyOperations"),r=e("./EventPluginUtils"),o=e("./ReactChildren"),i=e("./ReactComponent"),a=e("./ReactCompositeComponent"),s=e("./ReactContext"),u=e("./ReactCurrentOwner"),c=e("./ReactElement"),l=(e("./ReactElementValidator"),e("./ReactDOM")),p=e("./ReactDOMComponent"),d=e("./ReactDefaultInjection"),f=e("./ReactInstanceHandles"),h=e("./ReactLegacyElement"),m=e("./ReactMount"),v=e("./ReactMultiChild"),y=e("./ReactPerf"),g=e("./ReactPropTypes"),E=e("./ReactServerRendering"),C=e("./ReactTextComponent"),R=e("./Object.assign"),M=e("./deprecated"),b=e("./onlyChild");
     13d.inject();var O=c.createElement,D=c.createFactory;O=h.wrapCreateElement(O),D=h.wrapCreateFactory(D);var x=y.measure("React","render",m.render),P={Children:{map:o.map,forEach:o.forEach,count:o.count,only:b},DOM:l,PropTypes:g,initializeTouchEvents:function(e){r.useTouchEvents=e},createClass:a.createClass,createElement:O,createFactory:D,constructAndRenderComponent:m.constructAndRenderComponent,constructAndRenderComponentByID:m.constructAndRenderComponentByID,render:x,renderToString:E.renderToString,renderToStaticMarkup:E.renderToStaticMarkup,unmountComponentAtNode:m.unmountComponentAtNode,isValidClass:h.isValidClass,isValidElement:c.isValidElement,withContext:s.withContext,__spread:R,renderComponent:M("React","renderComponent","render",this,x),renderComponentToString:M("React","renderComponentToString","renderToString",this,E.renderToString),renderComponentToStaticMarkup:M("React","renderComponentToStaticMarkup","renderToStaticMarkup",this,E.renderToStaticMarkup),isValidComponent:M("React","isValidComponent","isValidElement",this,c.isValidElement)};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({Component:i,CurrentOwner:u,DOMComponent:p,DOMPropertyOperations:n,InstanceHandles:f,Mount:m,MultiChild:v,TextComponent:C});P.version="0.12.0",t.exports=P},{"./DOMPropertyOperations":13,"./EventPluginUtils":21,"./Object.assign":29,"./ReactChildren":36,"./ReactComponent":37,"./ReactCompositeComponent":40,"./ReactContext":41,"./ReactCurrentOwner":42,"./ReactDOM":43,"./ReactDOMComponent":45,"./ReactDefaultInjection":55,"./ReactElement":56,"./ReactElementValidator":57,"./ReactInstanceHandles":64,"./ReactLegacyElement":65,"./ReactMount":68,"./ReactMultiChild":69,"./ReactPerf":73,"./ReactPropTypes":77,"./ReactServerRendering":81,"./ReactTextComponent":84,"./deprecated":117,"./onlyChild":148}],32:[function(e,t){"use strict";var n=e("./ReactEmptyComponent"),r=e("./ReactMount"),o=e("./invariant"),i={getDOMNode:function(){return o(this.isMounted()),n.isNullComponentID(this._rootNodeID)?null:r.getNode(this._rootNodeID)}};t.exports=i},{"./ReactEmptyComponent":58,"./ReactMount":68,"./invariant":137}],33:[function(e,t){"use strict";function n(e){return Object.prototype.hasOwnProperty.call(e,h)||(e[h]=d++,l[e[h]]={}),l[e[h]]}var r=e("./EventConstants"),o=e("./EventPluginHub"),i=e("./EventPluginRegistry"),a=e("./ReactEventEmitterMixin"),s=e("./ViewportMetrics"),u=e("./Object.assign"),c=e("./isEventSupported"),l={},p=!1,d=0,f={topBlur:"blur",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topScroll:"scroll",topSelectionChange:"selectionchange",topTextInput:"textInput",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topWheel:"wheel"},h="_reactListenersID"+String(Math.random()).slice(2),m=u({},a,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(m.handleTopLevel),m.ReactEventListener=e}},setEnabled:function(e){m.ReactEventListener&&m.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!m.ReactEventListener||!m.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var o=t,a=n(o),s=i.registrationNameDependencies[e],u=r.topLevelTypes,l=0,p=s.length;p>l;l++){var d=s[l];a.hasOwnProperty(d)&&a[d]||(d===u.topWheel?c("wheel")?m.ReactEventListener.trapBubbledEvent(u.topWheel,"wheel",o):c("mousewheel")?m.ReactEventListener.trapBubbledEvent(u.topWheel,"mousewheel",o):m.ReactEventListener.trapBubbledEvent(u.topWheel,"DOMMouseScroll",o):d===u.topScroll?c("scroll",!0)?m.ReactEventListener.trapCapturedEvent(u.topScroll,"scroll",o):m.ReactEventListener.trapBubbledEvent(u.topScroll,"scroll",m.ReactEventListener.WINDOW_HANDLE):d===u.topFocus||d===u.topBlur?(c("focus",!0)?(m.ReactEventListener.trapCapturedEvent(u.topFocus,"focus",o),m.ReactEventListener.trapCapturedEvent(u.topBlur,"blur",o)):c("focusin")&&(m.ReactEventListener.trapBubbledEvent(u.topFocus,"focusin",o),m.ReactEventListener.trapBubbledEvent(u.topBlur,"focusout",o)),a[u.topBlur]=!0,a[u.topFocus]=!0):f.hasOwnProperty(d)&&m.ReactEventListener.trapBubbledEvent(d,f[d],o),a[d]=!0)}},trapBubbledEvent:function(e,t,n){return m.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return m.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!p){var e=s.refreshScrollValues;m.ReactEventListener.monitorScrollValue(e),p=!0}},eventNameDispatchConfigs:o.eventNameDispatchConfigs,registrationNameModules:o.registrationNameModules,putListener:o.putListener,getListener:o.getListener,deleteListener:o.deleteListener,deleteAllListeners:o.deleteAllListeners});t.exports=m},{"./EventConstants":17,"./EventPluginHub":19,"./EventPluginRegistry":20,"./Object.assign":29,"./ReactEventEmitterMixin":60,"./ViewportMetrics":105,"./isEventSupported":138}],34:[function(e,t){"use strict";var n=e("./React"),r=e("./Object.assign"),o=n.createFactory(e("./ReactTransitionGroup")),i=n.createFactory(e("./ReactCSSTransitionGroupChild")),a=n.createClass({displayName:"ReactCSSTransitionGroup",propTypes:{transitionName:n.PropTypes.string.isRequired,transitionEnter:n.PropTypes.bool,transitionLeave:n.PropTypes.bool},getDefaultProps:function(){return{transitionEnter:!0,transitionLeave:!0}},_wrapChild:function(e){return i({name:this.props.transitionName,enter:this.props.transitionEnter,leave:this.props.transitionLeave},e)},render:function(){return o(r({},this.props,{childFactory:this._wrapChild}))}});t.exports=a},{"./Object.assign":29,"./React":31,"./ReactCSSTransitionGroupChild":35,"./ReactTransitionGroup":87}],35:[function(e,t){"use strict";var n=e("./React"),r=e("./CSSCore"),o=e("./ReactTransitionEvents"),i=e("./onlyChild"),a=17,s=n.createClass({displayName:"ReactCSSTransitionGroupChild",transition:function(e,t){var n=this.getDOMNode(),i=this.props.name+"-"+e,a=i+"-active",s=function(e){e&&e.target!==n||(r.removeClass(n,i),r.removeClass(n,a),o.removeEndEventListener(n,s),t&&t())};o.addEndEventListener(n,s),r.addClass(n,i),this.queueClass(a)},queueClass:function(e){this.classNameQueue.push(e),this.timeout||(this.timeout=setTimeout(this.flushClassNameQueue,a))},flushClassNameQueue:function(){this.isMounted()&&this.classNameQueue.forEach(r.addClass.bind(r,this.getDOMNode())),this.classNameQueue.length=0,this.timeout=null},componentWillMount:function(){this.classNameQueue=[]},componentWillUnmount:function(){this.timeout&&clearTimeout(this.timeout)},componentWillEnter:function(e){this.props.enter?this.transition("enter",e):e()},componentWillLeave:function(e){this.props.leave?this.transition("leave",e):e()},render:function(){return i(this.props.children)}});t.exports=s},{"./CSSCore":4,"./React":31,"./ReactTransitionEvents":86,"./onlyChild":148}],36:[function(e,t){"use strict";function n(e,t){this.forEachFunction=e,this.forEachContext=t}function r(e,t,n,r){var o=e;o.forEachFunction.call(o.forEachContext,t,r)}function o(e,t,o){if(null==e)return e;var i=n.getPooled(t,o);p(e,r,i),n.release(i)}function i(e,t,n){this.mapResult=e,this.mapFunction=t,this.mapContext=n}function a(e,t,n,r){var o=e,i=o.mapResult,a=!i.hasOwnProperty(n);if(a){var s=o.mapFunction.call(o.mapContext,t,r);i[n]=s}}function s(e,t,n){if(null==e)return e;var r={},o=i.getPooled(r,t,n);return p(e,a,o),i.release(o),r}function u(){return null}function c(e){return p(e,u,null)}var l=e("./PooledClass"),p=e("./traverseAllChildren"),d=(e("./warning"),l.twoArgumentPooler),f=l.threeArgumentPooler;l.addPoolingTo(n,d),l.addPoolingTo(i,f);var h={forEach:o,map:s,count:c};t.exports=h},{"./PooledClass":30,"./traverseAllChildren":153,"./warning":155}],37:[function(e,t){"use strict";var n=e("./ReactElement"),r=e("./ReactOwner"),o=e("./ReactUpdates"),i=e("./Object.assign"),a=e("./invariant"),s=e("./keyMirror"),u=s({MOUNTED:null,UNMOUNTED:null}),c=!1,l=null,p=null,d={injection:{injectEnvironment:function(e){a(!c),p=e.mountImageIntoNode,l=e.unmountIDFromEnvironment,d.BackendIDOperations=e.BackendIDOperations,c=!0}},LifeCycle:u,BackendIDOperations:null,Mixin:{isMounted:function(){return this._lifeCycleState===u.MOUNTED},setProps:function(e,t){var n=this._pendingElement||this._currentElement;this.replaceProps(i({},n.props,e),t)},replaceProps:function(e,t){a(this.isMounted()),a(0===this._mountDepth),this._pendingElement=n.cloneAndReplaceProps(this._pendingElement||this._currentElement,e),o.enqueueUpdate(this,t)},_setPropsInternal:function(e,t){var r=this._pendingElement||this._currentElement;this._pendingElement=n.cloneAndReplaceProps(r,i({},r.props,e)),o.enqueueUpdate(this,t)},construct:function(e){this.props=e.props,this._owner=e._owner,this._lifeCycleState=u.UNMOUNTED,this._pendingCallbacks=null,this._currentElement=e,this._pendingElement=null},mountComponent:function(e,t,n){a(!this.isMounted());var o=this._currentElement.ref;if(null!=o){var i=this._currentElement._owner;r.addComponentAsRefTo(this,o,i)}this._rootNodeID=e,this._lifeCycleState=u.MOUNTED,this._mountDepth=n},unmountComponent:function(){a(this.isMounted());var e=this._currentElement.ref;null!=e&&r.removeComponentAsRefFrom(this,e,this._owner),l(this._rootNodeID),this._rootNodeID=null,this._lifeCycleState=u.UNMOUNTED},receiveComponent:function(e,t){a(this.isMounted()),this._pendingElement=e,this.performUpdateIfNecessary(t)},performUpdateIfNecessary:function(e){if(null!=this._pendingElement){var t=this._currentElement,n=this._pendingElement;this._currentElement=n,this.props=n.props,this._owner=n._owner,this._pendingElement=null,this.updateComponent(e,t)}},updateComponent:function(e,t){var n=this._currentElement;(n._owner!==t._owner||n.ref!==t.ref)&&(null!=t.ref&&r.removeComponentAsRefFrom(this,t.ref,t._owner),null!=n.ref&&r.addComponentAsRefTo(this,n.ref,n._owner))},mountComponentIntoNode:function(e,t,n){var r=o.ReactReconcileTransaction.getPooled();r.perform(this._mountComponentIntoNode,this,e,t,r,n),o.ReactReconcileTransaction.release(r)},_mountComponentIntoNode:function(e,t,n,r){var o=this.mountComponent(e,n,0);p(o,t,r)},isOwnedBy:function(e){return this._owner===e},getSiblingByRef:function(e){var t=this._owner;return t&&t.refs?t.refs[e]:null}}};t.exports=d},{"./Object.assign":29,"./ReactElement":56,"./ReactOwner":72,"./ReactUpdates":88,"./invariant":137,"./keyMirror":143}],38:[function(e,t){"use strict";var n=e("./ReactDOMIDOperations"),r=e("./ReactMarkupChecksum"),o=e("./ReactMount"),i=e("./ReactPerf"),a=e("./ReactReconcileTransaction"),s=e("./getReactRootElementInContainer"),u=e("./invariant"),c=e("./setInnerHTML"),l=1,p=9,d={ReactReconcileTransaction:a,BackendIDOperations:n,unmountIDFromEnvironment:function(e){o.purgeID(e)},mountImageIntoNode:i.measure("ReactComponentBrowserEnvironment","mountImageIntoNode",function(e,t,n){if(u(t&&(t.nodeType===l||t.nodeType===p)),n){if(r.canReuseMarkup(e,s(t)))return;u(t.nodeType!==p)}u(t.nodeType!==p),c(t,e)})};t.exports=d},{"./ReactDOMIDOperations":47,"./ReactMarkupChecksum":67,"./ReactMount":68,"./ReactPerf":73,"./ReactReconcileTransaction":79,"./getReactRootElementInContainer":131,"./invariant":137,"./setInnerHTML":149}],39:[function(e,t){"use strict";var n=e("./shallowEqual"),r={shouldComponentUpdate:function(e,t){return!n(this.props,e)||!n(this.state,t)}};t.exports=r},{"./shallowEqual":150}],40:[function(e,t){"use strict";function n(e){var t=e._owner||null;return t&&t.constructor&&t.constructor.displayName?" Check the render method of `"+t.constructor.displayName+"`.":""}function r(e,t){for(var n in t)t.hasOwnProperty(n)&&D("function"==typeof t[n])}function o(e,t){var n=I.hasOwnProperty(t)?I[t]:null;L.hasOwnProperty(t)&&D(n===S.OVERRIDE_BASE),e.hasOwnProperty(t)&&D(n===S.DEFINE_MANY||n===S.DEFINE_MANY_MERGED)}function i(e){var t=e._compositeLifeCycleState;D(e.isMounted()||t===A.MOUNTING),D(null==f.current),D(t!==A.UNMOUNTING)}function a(e,t){if(t){D(!y.isValidFactory(t)),D(!h.isValidElement(t));var n=e.prototype;t.hasOwnProperty(_)&&k.mixins(e,t.mixins);for(var r in t)if(t.hasOwnProperty(r)&&r!==_){var i=t[r];if(o(n,r),k.hasOwnProperty(r))k[r](e,i);else{var a=I.hasOwnProperty(r),s=n.hasOwnProperty(r),u=i&&i.__reactDontBind,p="function"==typeof i,d=p&&!a&&!s&&!u;if(d)n.__reactAutoBindMap||(n.__reactAutoBindMap={}),n.__reactAutoBindMap[r]=i,n[r]=i;else if(s){var f=I[r];D(a&&(f===S.DEFINE_MANY_MERGED||f===S.DEFINE_MANY)),f===S.DEFINE_MANY_MERGED?n[r]=c(n[r],i):f===S.DEFINE_MANY&&(n[r]=l(n[r],i))}else n[r]=i}}}}function s(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in k;D(!o);var i=n in e;D(!i),e[n]=r}}}function u(e,t){return D(e&&t&&"object"==typeof e&&"object"==typeof t),T(t,function(t,n){D(void 0===e[n]),e[n]=t}),e}function c(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);return null==n?r:null==r?n:u(n,r)}}function l(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}var p=e("./ReactComponent"),d=e("./ReactContext"),f=e("./ReactCurrentOwner"),h=e("./ReactElement"),m=(e("./ReactElementValidator"),e("./ReactEmptyComponent")),v=e("./ReactErrorUtils"),y=e("./ReactLegacyElement"),g=e("./ReactOwner"),E=e("./ReactPerf"),C=e("./ReactPropTransferer"),R=e("./ReactPropTypeLocations"),M=(e("./ReactPropTypeLocationNames"),e("./ReactUpdates")),b=e("./Object.assign"),O=e("./instantiateReactComponent"),D=e("./invariant"),x=e("./keyMirror"),P=e("./keyOf"),T=(e("./monitorCodeUse"),e("./mapObject")),w=e("./shouldUpdateReactComponent"),_=(e("./warning"),P({mixins:null})),S=x({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),N=[],I={mixins:S.DEFINE_MANY,statics:S.DEFINE_MANY,propTypes:S.DEFINE_MANY,contextTypes:S.DEFINE_MANY,childContextTypes:S.DEFINE_MANY,getDefaultProps:S.DEFINE_MANY_MERGED,getInitialState:S.DEFINE_MANY_MERGED,getChildContext:S.DEFINE_MANY_MERGED,render:S.DEFINE_ONCE,componentWillMount:S.DEFINE_MANY,componentDidMount:S.DEFINE_MANY,componentWillReceiveProps:S.DEFINE_MANY,shouldComponentUpdate:S.DEFINE_ONCE,componentWillUpdate:S.DEFINE_MANY,componentDidUpdate:S.DEFINE_MANY,componentWillUnmount:S.DEFINE_MANY,updateComponent:S.OVERRIDE_BASE},k={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)a(e,t[n])},childContextTypes:function(e,t){r(e,t,R.childContext),e.childContextTypes=b({},e.childContextTypes,t)},contextTypes:function(e,t){r(e,t,R.context),e.contextTypes=b({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps=e.getDefaultProps?c(e.getDefaultProps,t):t},propTypes:function(e,t){r(e,t,R.prop),e.propTypes=b({},e.propTypes,t)},statics:function(e,t){s(e,t)}},A=x({MOUNTING:null,UNMOUNTING:null,RECEIVING_PROPS:null}),L={construct:function(){p.Mixin.construct.apply(this,arguments),g.Mixin.construct.apply(this,arguments),this.state=null,this._pendingState=null,this.context=null,this._compositeLifeCycleState=null},isMounted:function(){return p.Mixin.isMounted.call(this)&&this._compositeLifeCycleState!==A.MOUNTING},mountComponent:E.measure("ReactCompositeComponent","mountComponent",function(e,t,n){p.Mixin.mountComponent.call(this,e,t,n),this._compositeLifeCycleState=A.MOUNTING,this.__reactAutoBindMap&&this._bindAutoBindMethods(),this.context=this._processContext(this._currentElement._context),this.props=this._processProps(this.props),this.state=this.getInitialState?this.getInitialState():null,D("object"==typeof this.state&&!Array.isArray(this.state)),this._pendingState=null,this._pendingForceUpdate=!1,this.componentWillMount&&(this.componentWillMount(),this._pendingState&&(this.state=this._pendingState,this._pendingState=null)),this._renderedComponent=O(this._renderValidatedComponent(),this._currentElement.type),this._compositeLifeCycleState=null;var r=this._renderedComponent.mountComponent(e,t,n+1);return this.componentDidMount&&t.getReactMountReady().enqueue(this.componentDidMount,this),r}),unmountComponent:function(){this._compositeLifeCycleState=A.UNMOUNTING,this.componentWillUnmount&&this.componentWillUnmount(),this._compositeLifeCycleState=null,this._renderedComponent.unmountComponent(),this._renderedComponent=null,p.Mixin.unmountComponent.call(this)},setState:function(e,t){D("object"==typeof e||null==e),this.replaceState(b({},this._pendingState||this.state,e),t)},replaceState:function(e,t){i(this),this._pendingState=e,this._compositeLifeCycleState!==A.MOUNTING&&M.enqueueUpdate(this,t)},_processContext:function(e){var t=null,n=this.constructor.contextTypes;if(n){t={};for(var r in n)t[r]=e[r]}return t},_processChildContext:function(e){var t=this.getChildContext&&this.getChildContext();if(this.constructor.displayName||"ReactCompositeComponent",t){D("object"==typeof this.constructor.childContextTypes);for(var n in t)D(n in this.constructor.childContextTypes);return b({},e,t)}return e},_processProps:function(e){return e},_checkPropTypes:function(e,t,r){var o=this.constructor.displayName;for(var i in e)if(e.hasOwnProperty(i)){var a=e[i](t,i,o,r);a instanceof Error&&n(this)}},performUpdateIfNecessary:function(e){var t=this._compositeLifeCycleState;if(t!==A.MOUNTING&&t!==A.RECEIVING_PROPS&&(null!=this._pendingElement||null!=this._pendingState||this._pendingForceUpdate)){var n=this.context,r=this.props,o=this._currentElement;null!=this._pendingElement&&(o=this._pendingElement,n=this._processContext(o._context),r=this._processProps(o.props),this._pendingElement=null,this._compositeLifeCycleState=A.RECEIVING_PROPS,this.componentWillReceiveProps&&this.componentWillReceiveProps(r,n)),this._compositeLifeCycleState=null;var i=this._pendingState||this.state;this._pendingState=null;var a=this._pendingForceUpdate||!this.shouldComponentUpdate||this.shouldComponentUpdate(r,i,n);a?(this._pendingForceUpdate=!1,this._performComponentUpdate(o,r,i,n,e)):(this._currentElement=o,this.props=r,this.state=i,this.context=n,this._owner=o._owner)}},_performComponentUpdate:function(e,t,n,r,o){var i=this._currentElement,a=this.props,s=this.state,u=this.context;this.componentWillUpdate&&this.componentWillUpdate(t,n,r),this._currentElement=e,this.props=t,this.state=n,this.context=r,this._owner=e._owner,this.updateComponent(o,i),this.componentDidUpdate&&o.getReactMountReady().enqueue(this.componentDidUpdate.bind(this,a,s,u),this)},receiveComponent:function(e,t){(e!==this._currentElement||null==e._owner)&&p.Mixin.receiveComponent.call(this,e,t)},updateComponent:E.measure("ReactCompositeComponent","updateComponent",function(e,t){p.Mixin.updateComponent.call(this,e,t);var n=this._renderedComponent,r=n._currentElement,o=this._renderValidatedComponent();if(w(r,o))n.receiveComponent(o,e);else{var i=this._rootNodeID,a=n._rootNodeID;n.unmountComponent(),this._renderedComponent=O(o,this._currentElement.type);var s=this._renderedComponent.mountComponent(i,e,this._mountDepth+1);p.BackendIDOperations.dangerouslyReplaceNodeWithMarkupByID(a,s)}}),forceUpdate:function(e){var t=this._compositeLifeCycleState;D(this.isMounted()||t===A.MOUNTING),D(t!==A.UNMOUNTING&&null==f.current),this._pendingForceUpdate=!0,M.enqueueUpdate(this,e)},_renderValidatedComponent:E.measure("ReactCompositeComponent","_renderValidatedComponent",function(){var e,t=d.current;d.current=this._processChildContext(this._currentElement._context),f.current=this;try{e=this.render(),null===e||e===!1?(e=m.getEmptyComponent(),m.registerNullComponentID(this._rootNodeID)):m.deregisterNullComponentID(this._rootNodeID)}finally{d.current=t,f.current=null}return D(h.isValidElement(e)),e}),_bindAutoBindMethods:function(){for(var e in this.__reactAutoBindMap)if(this.__reactAutoBindMap.hasOwnProperty(e)){var t=this.__reactAutoBindMap[e];this[e]=this._bindAutoBindMethod(v.guard(t,this.constructor.displayName+"."+e))}},_bindAutoBindMethod:function(e){var t=this,n=e.bind(t);return n}},U=function(){};b(U.prototype,p.Mixin,g.Mixin,C.Mixin,L);var F={LifeCycle:A,Base:U,createClass:function(e){var t=function(){};t.prototype=new U,t.prototype.constructor=t,N.forEach(a.bind(null,t)),a(t,e),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),D(t.prototype.render);for(var n in I)t.prototype[n]||(t.prototype[n]=null);return y.wrapFactory(h.createFactory(t))},injection:{injectMixin:function(e){N.push(e)}}};t.exports=F},{"./Object.assign":29,"./ReactComponent":37,"./ReactContext":41,"./ReactCurrentOwner":42,"./ReactElement":56,"./ReactElementValidator":57,"./ReactEmptyComponent":58,"./ReactErrorUtils":59,"./ReactLegacyElement":65,"./ReactOwner":72,"./ReactPerf":73,"./ReactPropTransferer":74,"./ReactPropTypeLocationNames":75,"./ReactPropTypeLocations":76,"./ReactUpdates":88,"./instantiateReactComponent":136,"./invariant":137,"./keyMirror":143,"./keyOf":144,"./mapObject":145,"./monitorCodeUse":147,"./shouldUpdateReactComponent":151,"./warning":155}],41:[function(e,t){"use strict";var n=e("./Object.assign"),r={current:{},withContext:function(e,t){var o,i=r.current;r.current=n({},i,e);try{o=t()}finally{r.current=i}return o}};t.exports=r},{"./Object.assign":29}],42:[function(e,t){"use strict";var n={current:null};t.exports=n},{}],43:[function(e,t){"use strict";function n(e){return o.markNonLegacyFactory(r.createFactory(e))}var r=e("./ReactElement"),o=(e("./ReactElementValidator"),e("./ReactLegacyElement")),i=e("./mapObject"),a=i({a:"a",abbr:"abbr",address:"address",area:"area",article:"article",aside:"aside",audio:"audio",b:"b",base:"base",bdi:"bdi",bdo:"bdo",big:"big",blockquote:"blockquote",body:"body",br:"br",button:"button",canvas:"canvas",caption:"caption",cite:"cite",code:"code",col:"col",colgroup:"colgroup",data:"data",datalist:"datalist",dd:"dd",del:"del",details:"details",dfn:"dfn",dialog:"dialog",div:"div",dl:"dl",dt:"dt",em:"em",embed:"embed",fieldset:"fieldset",figcaption:"figcaption",figure:"figure",footer:"footer",form:"form",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",head:"head",header:"header",hr:"hr",html:"html",i:"i",iframe:"iframe",img:"img",input:"input",ins:"ins",kbd:"kbd",keygen:"keygen",label:"label",legend:"legend",li:"li",link:"link",main:"main",map:"map",mark:"mark",menu:"menu",menuitem:"menuitem",meta:"meta",meter:"meter",nav:"nav",noscript:"noscript",object:"object",ol:"ol",optgroup:"optgroup",option:"option",output:"output",p:"p",param:"param",picture:"picture",pre:"pre",progress:"progress",q:"q",rp:"rp",rt:"rt",ruby:"ruby",s:"s",samp:"samp",script:"script",section:"section",select:"select",small:"small",source:"source",span:"span",strong:"strong",style:"style",sub:"sub",summary:"summary",sup:"sup",table:"table",tbody:"tbody",td:"td",textarea:"textarea",tfoot:"tfoot",th:"th",thead:"thead",time:"time",title:"title",tr:"tr",track:"track",u:"u",ul:"ul","var":"var",video:"video",wbr:"wbr",circle:"circle",defs:"defs",ellipse:"ellipse",g:"g",line:"line",linearGradient:"linearGradient",mask:"mask",path:"path",pattern:"pattern",polygon:"polygon",polyline:"polyline",radialGradient:"radialGradient",rect:"rect",stop:"stop",svg:"svg",text:"text",tspan:"tspan"},n);t.exports=a},{"./ReactElement":56,"./ReactElementValidator":57,"./ReactLegacyElement":65,"./mapObject":145}],44:[function(e,t){"use strict";var n=e("./AutoFocusMixin"),r=e("./ReactBrowserComponentMixin"),o=e("./ReactCompositeComponent"),i=e("./ReactElement"),a=e("./ReactDOM"),s=e("./keyMirror"),u=i.createFactory(a.button.type),c=s({onClick:!0,onDoubleClick:!0,onMouseDown:!0,onMouseMove:!0,onMouseUp:!0,onClickCapture:!0,onDoubleClickCapture:!0,onMouseDownCapture:!0,onMouseMoveCapture:!0,onMouseUpCapture:!0}),l=o.createClass({displayName:"ReactDOMButton",mixins:[n,r],render:function(){var e={};for(var t in this.props)!this.props.hasOwnProperty(t)||this.props.disabled&&c[t]||(e[t]=this.props[t]);return u(e,this.props.children)}});t.exports=l},{"./AutoFocusMixin":2,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56,"./keyMirror":143}],45:[function(e,t){"use strict";function n(e){e&&(y(null==e.children||null==e.dangerouslySetInnerHTML),y(null==e.style||"object"==typeof e.style))}function r(e,t,n,r){var o=d.findReactContainerForID(e);if(o){var i=o.nodeType===O?o.ownerDocument:o;C(t,i)}r.getPutListenerQueue().enqueuePutListener(e,t,n)}function o(e){T.call(P,e)||(y(x.test(e)),P[e]=!0)}function i(e){o(e),this._tag=e,this.tagName=e.toUpperCase()}var a=e("./CSSPropertyOperations"),s=e("./DOMProperty"),u=e("./DOMPropertyOperations"),c=e("./ReactBrowserComponentMixin"),l=e("./ReactComponent"),p=e("./ReactBrowserEventEmitter"),d=e("./ReactMount"),f=e("./ReactMultiChild"),h=e("./ReactPerf"),m=e("./Object.assign"),v=e("./escapeTextForBrowser"),y=e("./invariant"),g=(e("./isEventSupported"),e("./keyOf")),E=(e("./monitorCodeUse"),p.deleteListener),C=p.listenTo,R=p.registrationNameModules,M={string:!0,number:!0},b=g({style:null}),O=1,D={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},x=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,P={},T={}.hasOwnProperty;i.displayName="ReactDOMComponent",i.Mixin={mountComponent:h.measure("ReactDOMComponent","mountComponent",function(e,t,r){l.Mixin.mountComponent.call(this,e,t,r),n(this.props);var o=D[this._tag]?"":"</"+this._tag+">";return this._createOpenTagMarkupAndPutListeners(t)+this._createContentMarkup(t)+o}),_createOpenTagMarkupAndPutListeners:function(e){var t=this.props,n="<"+this._tag;for(var o in t)if(t.hasOwnProperty(o)){var i=t[o];if(null!=i)if(R.hasOwnProperty(o))r(this._rootNodeID,o,i,e);else{o===b&&(i&&(i=t.style=m({},t.style)),i=a.createMarkupForStyles(i));var s=u.createMarkupForProperty(o,i);s&&(n+=" "+s)}}if(e.renderToStaticMarkup)return n+">";var c=u.createMarkupForID(this._rootNodeID);return n+" "+c+">"},_createContentMarkup:function(e){var t=this.props.dangerouslySetInnerHTML;if(null!=t){if(null!=t.__html)return t.__html}else{var n=M[typeof this.props.children]?this.props.children:null,r=null!=n?null:this.props.children;if(null!=n)return v(n);if(null!=r){var o=this.mountChildren(r,e);return o.join("")}}return""},receiveComponent:function(e,t){(e!==this._currentElement||null==e._owner)&&l.Mixin.receiveComponent.call(this,e,t)},updateComponent:h.measure("ReactDOMComponent","updateComponent",function(e,t){n(this._currentElement.props),l.Mixin.updateComponent.call(this,e,t),this._updateDOMProperties(t.props,e),this._updateDOMChildren(t.props,e)}),_updateDOMProperties:function(e,t){var n,o,i,a=this.props;for(n in e)if(!a.hasOwnProperty(n)&&e.hasOwnProperty(n))if(n===b){var u=e[n];for(o in u)u.hasOwnProperty(o)&&(i=i||{},i[o]="")}else R.hasOwnProperty(n)?E(this._rootNodeID,n):(s.isStandardName[n]||s.isCustomAttribute(n))&&l.BackendIDOperations.deletePropertyByID(this._rootNodeID,n);for(n in a){var c=a[n],p=e[n];if(a.hasOwnProperty(n)&&c!==p)if(n===b)if(c&&(c=a.style=m({},c)),p){for(o in p)!p.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(i=i||{},i[o]="");for(o in c)c.hasOwnProperty(o)&&p[o]!==c[o]&&(i=i||{},i[o]=c[o])}else i=c;else R.hasOwnProperty(n)?r(this._rootNodeID,n,c,t):(s.isStandardName[n]||s.isCustomAttribute(n))&&l.BackendIDOperations.updatePropertyByID(this._rootNodeID,n,c)}i&&l.BackendIDOperations.updateStylesByID(this._rootNodeID,i)},_updateDOMChildren:function(e,t){var n=this.props,r=M[typeof e.children]?e.children:null,o=M[typeof n.children]?n.children:null,i=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,a=n.dangerouslySetInnerHTML&&n.dangerouslySetInnerHTML.__html,s=null!=r?null:e.children,u=null!=o?null:n.children,c=null!=r||null!=i,p=null!=o||null!=a;null!=s&&null==u?this.updateChildren(null,t):c&&!p&&this.updateTextContent(""),null!=o?r!==o&&this.updateTextContent(""+o):null!=a?i!==a&&l.BackendIDOperations.updateInnerHTMLByID(this._rootNodeID,a):null!=u&&this.updateChildren(u,t)},unmountComponent:function(){this.unmountChildren(),p.deleteAllListeners(this._rootNodeID),l.Mixin.unmountComponent.call(this)}},m(i.prototype,l.Mixin,i.Mixin,f.Mixin,c),t.exports=i},{"./CSSPropertyOperations":6,"./DOMProperty":12,"./DOMPropertyOperations":13,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactBrowserEventEmitter":33,"./ReactComponent":37,"./ReactMount":68,"./ReactMultiChild":69,"./ReactPerf":73,"./escapeTextForBrowser":120,"./invariant":137,"./isEventSupported":138,"./keyOf":144,"./monitorCodeUse":147}],46:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./LocalEventTrapMixin"),o=e("./ReactBrowserComponentMixin"),i=e("./ReactCompositeComponent"),a=e("./ReactElement"),s=e("./ReactDOM"),u=a.createFactory(s.form.type),c=i.createClass({displayName:"ReactDOMForm",mixins:[o,r],render:function(){return u(this.props)},componentDidMount:function(){this.trapBubbledEvent(n.topLevelTypes.topReset,"reset"),this.trapBubbledEvent(n.topLevelTypes.topSubmit,"submit")}});t.exports=c},{"./EventConstants":17,"./LocalEventTrapMixin":27,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56}],47:[function(e,t){"use strict";var n=e("./CSSPropertyOperations"),r=e("./DOMChildrenOperations"),o=e("./DOMPropertyOperations"),i=e("./ReactMount"),a=e("./ReactPerf"),s=e("./invariant"),u=e("./setInnerHTML"),c={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},l={updatePropertyByID:a.measure("ReactDOMIDOperations","updatePropertyByID",function(e,t,n){var r=i.getNode(e);s(!c.hasOwnProperty(t)),null!=n?o.setValueForProperty(r,t,n):o.deleteValueForProperty(r,t)}),deletePropertyByID:a.measure("ReactDOMIDOperations","deletePropertyByID",function(e,t,n){var r=i.getNode(e);s(!c.hasOwnProperty(t)),o.deleteValueForProperty(r,t,n)}),updateStylesByID:a.measure("ReactDOMIDOperations","updateStylesByID",function(e,t){var r=i.getNode(e);n.setValueForStyles(r,t)}),updateInnerHTMLByID:a.measure("ReactDOMIDOperations","updateInnerHTMLByID",function(e,t){var n=i.getNode(e);u(n,t)}),updateTextContentByID:a.measure("ReactDOMIDOperations","updateTextContentByID",function(e,t){var n=i.getNode(e);r.updateTextContent(n,t)}),dangerouslyReplaceNodeWithMarkupByID:a.measure("ReactDOMIDOperations","dangerouslyReplaceNodeWithMarkupByID",function(e,t){var n=i.getNode(e);r.dangerouslyReplaceNodeWithMarkup(n,t)}),dangerouslyProcessChildrenUpdates:a.measure("ReactDOMIDOperations","dangerouslyProcessChildrenUpdates",function(e,t){for(var n=0;n<e.length;n++)e[n].parentNode=i.getNode(e[n].parentID);r.processUpdates(e,t)})};t.exports=l},{"./CSSPropertyOperations":6,"./DOMChildrenOperations":11,"./DOMPropertyOperations":13,"./ReactMount":68,"./ReactPerf":73,"./invariant":137,"./setInnerHTML":149}],48:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./LocalEventTrapMixin"),o=e("./ReactBrowserComponentMixin"),i=e("./ReactCompositeComponent"),a=e("./ReactElement"),s=e("./ReactDOM"),u=a.createFactory(s.img.type),c=i.createClass({displayName:"ReactDOMImg",tagName:"IMG",mixins:[o,r],render:function(){return u(this.props)},componentDidMount:function(){this.trapBubbledEvent(n.topLevelTypes.topLoad,"load"),this.trapBubbledEvent(n.topLevelTypes.topError,"error")}});t.exports=c},{"./EventConstants":17,"./LocalEventTrapMixin":27,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56}],49:[function(e,t){"use strict";function n(){this.isMounted()&&this.forceUpdate()}var r=e("./AutoFocusMixin"),o=e("./DOMPropertyOperations"),i=e("./LinkedValueUtils"),a=e("./ReactBrowserComponentMixin"),s=e("./ReactCompositeComponent"),u=e("./ReactElement"),c=e("./ReactDOM"),l=e("./ReactMount"),p=e("./ReactUpdates"),d=e("./Object.assign"),f=e("./invariant"),h=u.createFactory(c.input.type),m={},v=s.createClass({displayName:"ReactDOMInput",mixins:[r,i.Mixin,a],getInitialState:function(){var e=this.props.defaultValue;
     14return{initialChecked:this.props.defaultChecked||!1,initialValue:null!=e?e:null}},render:function(){var e=d({},this.props);e.defaultChecked=null,e.defaultValue=null;var t=i.getValue(this);e.value=null!=t?t:this.state.initialValue;var n=i.getChecked(this);return e.checked=null!=n?n:this.state.initialChecked,e.onChange=this._handleChange,h(e,this.props.children)},componentDidMount:function(){var e=l.getID(this.getDOMNode());m[e]=this},componentWillUnmount:function(){var e=this.getDOMNode(),t=l.getID(e);delete m[t]},componentDidUpdate:function(){var e=this.getDOMNode();null!=this.props.checked&&o.setValueForProperty(e,"checked",this.props.checked||!1);var t=i.getValue(this);null!=t&&o.setValueForProperty(e,"value",""+t)},_handleChange:function(e){var t,r=i.getOnChange(this);r&&(t=r.call(this,e)),p.asap(n,this);var o=this.props.name;if("radio"===this.props.type&&null!=o){for(var a=this.getDOMNode(),s=a;s.parentNode;)s=s.parentNode;for(var u=s.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),c=0,d=u.length;d>c;c++){var h=u[c];if(h!==a&&h.form===a.form){var v=l.getID(h);f(v);var y=m[v];f(y),p.asap(n,y)}}}return t}});t.exports=v},{"./AutoFocusMixin":2,"./DOMPropertyOperations":13,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56,"./ReactMount":68,"./ReactUpdates":88,"./invariant":137}],50:[function(e,t){"use strict";var n=e("./ReactBrowserComponentMixin"),r=e("./ReactCompositeComponent"),o=e("./ReactElement"),i=e("./ReactDOM"),a=(e("./warning"),o.createFactory(i.option.type)),s=r.createClass({displayName:"ReactDOMOption",mixins:[n],componentWillMount:function(){},render:function(){return a(this.props,this.props.children)}});t.exports=s},{"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56,"./warning":155}],51:[function(e,t){"use strict";function n(){this.isMounted()&&(this.setState({value:this._pendingValue}),this._pendingValue=0)}function r(e,t){if(null!=e[t])if(e.multiple){if(!Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to <select> must be an array if `multiple` is true.")}else if(Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to <select> must be a scalar value if `multiple` is false.")}function o(e,t){var n,r,o,i=e.props.multiple,a=null!=t?t:e.state.value,s=e.getDOMNode().options;if(i)for(n={},r=0,o=a.length;o>r;++r)n[""+a[r]]=!0;else n=""+a;for(r=0,o=s.length;o>r;r++){var u=i?n.hasOwnProperty(s[r].value):s[r].value===n;u!==s[r].selected&&(s[r].selected=u)}}var i=e("./AutoFocusMixin"),a=e("./LinkedValueUtils"),s=e("./ReactBrowserComponentMixin"),u=e("./ReactCompositeComponent"),c=e("./ReactElement"),l=e("./ReactDOM"),p=e("./ReactUpdates"),d=e("./Object.assign"),f=c.createFactory(l.select.type),h=u.createClass({displayName:"ReactDOMSelect",mixins:[i,a.Mixin,s],propTypes:{defaultValue:r,value:r},getInitialState:function(){return{value:this.props.defaultValue||(this.props.multiple?[]:"")}},componentWillMount:function(){this._pendingValue=null},componentWillReceiveProps:function(e){!this.props.multiple&&e.multiple?this.setState({value:[this.state.value]}):this.props.multiple&&!e.multiple&&this.setState({value:this.state.value[0]})},render:function(){var e=d({},this.props);return e.onChange=this._handleChange,e.value=null,f(e,this.props.children)},componentDidMount:function(){o(this,a.getValue(this))},componentDidUpdate:function(e){var t=a.getValue(this),n=!!e.multiple,r=!!this.props.multiple;(null!=t||n!==r)&&o(this,t)},_handleChange:function(e){var t,r=a.getOnChange(this);r&&(t=r.call(this,e));var o;if(this.props.multiple){o=[];for(var i=e.target.options,s=0,u=i.length;u>s;s++)i[s].selected&&o.push(i[s].value)}else o=e.target.value;return this._pendingValue=o,p.asap(n,this),t}});t.exports=h},{"./AutoFocusMixin":2,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56,"./ReactUpdates":88}],52:[function(e,t){"use strict";function n(e,t,n,r){return e===n&&t===r}function r(e){var t=document.selection,n=t.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(e),o.setEndPoint("EndToStart",n);var i=o.text.length,a=i+r;return{start:i,end:a}}function o(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var r=t.anchorNode,o=t.anchorOffset,i=t.focusNode,a=t.focusOffset,s=t.getRangeAt(0),u=n(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),c=u?0:s.toString().length,l=s.cloneRange();l.selectNodeContents(e),l.setEnd(s.startContainer,s.startOffset);var p=n(l.startContainer,l.startOffset,l.endContainer,l.endOffset),d=p?0:l.toString().length,f=d+c,h=document.createRange();h.setStart(r,o),h.setEnd(i,a);var m=h.collapsed;return{start:m?f:d,end:m?d:f}}function i(e,t){var n,r,o=document.selection.createRange().duplicate();"undefined"==typeof t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function a(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i="undefined"==typeof t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var s=u(e,o),l=u(e,i);if(s&&l){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(l.node,l.offset)):(p.setEnd(l.node,l.offset),n.addRange(p))}}}var s=e("./ExecutionEnvironment"),u=e("./getNodeForCharacterOffset"),c=e("./getTextContentAccessor"),l=s.canUseDOM&&document.selection,p={getOffsets:l?r:o,setOffsets:l?i:a};t.exports=p},{"./ExecutionEnvironment":23,"./getNodeForCharacterOffset":130,"./getTextContentAccessor":132}],53:[function(e,t){"use strict";function n(){this.isMounted()&&this.forceUpdate()}var r=e("./AutoFocusMixin"),o=e("./DOMPropertyOperations"),i=e("./LinkedValueUtils"),a=e("./ReactBrowserComponentMixin"),s=e("./ReactCompositeComponent"),u=e("./ReactElement"),c=e("./ReactDOM"),l=e("./ReactUpdates"),p=e("./Object.assign"),d=e("./invariant"),f=(e("./warning"),u.createFactory(c.textarea.type)),h=s.createClass({displayName:"ReactDOMTextarea",mixins:[r,i.Mixin,a],getInitialState:function(){var e=this.props.defaultValue,t=this.props.children;null!=t&&(d(null==e),Array.isArray(t)&&(d(t.length<=1),t=t[0]),e=""+t),null==e&&(e="");var n=i.getValue(this);return{initialValue:""+(null!=n?n:e)}},render:function(){var e=p({},this.props);return d(null==e.dangerouslySetInnerHTML),e.defaultValue=null,e.value=null,e.onChange=this._handleChange,f(e,this.state.initialValue)},componentDidUpdate:function(){var e=i.getValue(this);if(null!=e){var t=this.getDOMNode();o.setValueForProperty(t,"value",""+e)}},_handleChange:function(e){var t,r=i.getOnChange(this);return r&&(t=r.call(this,e)),l.asap(n,this),t}});t.exports=h},{"./AutoFocusMixin":2,"./DOMPropertyOperations":13,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56,"./ReactUpdates":88,"./invariant":137,"./warning":155}],54:[function(e,t){"use strict";function n(){this.reinitializeTransaction()}var r=e("./ReactUpdates"),o=e("./Transaction"),i=e("./Object.assign"),a=e("./emptyFunction"),s={initialize:a,close:function(){p.isBatchingUpdates=!1}},u={initialize:a,close:r.flushBatchedUpdates.bind(r)},c=[u,s];i(n.prototype,o.Mixin,{getTransactionWrappers:function(){return c}});var l=new n,p={isBatchingUpdates:!1,batchedUpdates:function(e,t,n){var r=p.isBatchingUpdates;p.isBatchingUpdates=!0,r?e(t,n):l.perform(e,null,t,n)}};t.exports=p},{"./Object.assign":29,"./ReactUpdates":88,"./Transaction":104,"./emptyFunction":118}],55:[function(e,t){"use strict";function n(){O.EventEmitter.injectReactEventListener(b),O.EventPluginHub.injectEventPluginOrder(s),O.EventPluginHub.injectInstanceHandle(D),O.EventPluginHub.injectMount(x),O.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:w,EnterLeaveEventPlugin:u,ChangeEventPlugin:o,CompositionEventPlugin:a,MobileSafariClickEventPlugin:p,SelectEventPlugin:P,BeforeInputEventPlugin:r}),O.NativeComponent.injectGenericComponentClass(m),O.NativeComponent.injectComponentClasses({button:v,form:y,img:g,input:E,option:C,select:R,textarea:M,html:S("html"),head:S("head"),body:S("body")}),O.CompositeComponent.injectMixin(d),O.DOMProperty.injectDOMPropertyConfig(l),O.DOMProperty.injectDOMPropertyConfig(_),O.EmptyComponent.injectEmptyComponent("noscript"),O.Updates.injectReconcileTransaction(f.ReactReconcileTransaction),O.Updates.injectBatchingStrategy(h),O.RootIndex.injectCreateReactRootIndex(c.canUseDOM?i.createReactRootIndex:T.createReactRootIndex),O.Component.injectEnvironment(f)}var r=e("./BeforeInputEventPlugin"),o=e("./ChangeEventPlugin"),i=e("./ClientReactRootIndex"),a=e("./CompositionEventPlugin"),s=e("./DefaultEventPluginOrder"),u=e("./EnterLeaveEventPlugin"),c=e("./ExecutionEnvironment"),l=e("./HTMLDOMPropertyConfig"),p=e("./MobileSafariClickEventPlugin"),d=e("./ReactBrowserComponentMixin"),f=e("./ReactComponentBrowserEnvironment"),h=e("./ReactDefaultBatchingStrategy"),m=e("./ReactDOMComponent"),v=e("./ReactDOMButton"),y=e("./ReactDOMForm"),g=e("./ReactDOMImg"),E=e("./ReactDOMInput"),C=e("./ReactDOMOption"),R=e("./ReactDOMSelect"),M=e("./ReactDOMTextarea"),b=e("./ReactEventListener"),O=e("./ReactInjection"),D=e("./ReactInstanceHandles"),x=e("./ReactMount"),P=e("./SelectEventPlugin"),T=e("./ServerReactRootIndex"),w=e("./SimpleEventPlugin"),_=e("./SVGDOMPropertyConfig"),S=e("./createFullPageComponent");t.exports={inject:n}},{"./BeforeInputEventPlugin":3,"./ChangeEventPlugin":8,"./ClientReactRootIndex":9,"./CompositionEventPlugin":10,"./DefaultEventPluginOrder":15,"./EnterLeaveEventPlugin":16,"./ExecutionEnvironment":23,"./HTMLDOMPropertyConfig":24,"./MobileSafariClickEventPlugin":28,"./ReactBrowserComponentMixin":32,"./ReactComponentBrowserEnvironment":38,"./ReactDOMButton":44,"./ReactDOMComponent":45,"./ReactDOMForm":46,"./ReactDOMImg":48,"./ReactDOMInput":49,"./ReactDOMOption":50,"./ReactDOMSelect":51,"./ReactDOMTextarea":53,"./ReactDefaultBatchingStrategy":54,"./ReactEventListener":61,"./ReactInjection":62,"./ReactInstanceHandles":64,"./ReactMount":68,"./SVGDOMPropertyConfig":89,"./SelectEventPlugin":90,"./ServerReactRootIndex":91,"./SimpleEventPlugin":92,"./createFullPageComponent":113}],56:[function(e,t){"use strict";var n=e("./ReactContext"),r=e("./ReactCurrentOwner"),o=(e("./warning"),{key:!0,ref:!0}),i=function(e,t,n,r,o,i){this.type=e,this.key=t,this.ref=n,this._owner=r,this._context=o,this.props=i};i.prototype={_isReactElement:!0},i.createElement=function(e,t,a){var s,u={},c=null,l=null;if(null!=t){l=void 0===t.ref?null:t.ref,c=null==t.key?null:""+t.key;for(s in t)t.hasOwnProperty(s)&&!o.hasOwnProperty(s)&&(u[s]=t[s])}var p=arguments.length-2;if(1===p)u.children=a;else if(p>1){for(var d=Array(p),f=0;p>f;f++)d[f]=arguments[f+2];u.children=d}if(e.defaultProps){var h=e.defaultProps;for(s in h)"undefined"==typeof u[s]&&(u[s]=h[s])}return new i(e,c,l,r.current,n.current,u)},i.createFactory=function(e){var t=i.createElement.bind(null,e);return t.type=e,t},i.cloneAndReplaceProps=function(e,t){var n=new i(e.type,e.key,e.ref,e._owner,e._context,t);return n},i.isValidElement=function(e){var t=!(!e||!e._isReactElement);return t},t.exports=i},{"./ReactContext":41,"./ReactCurrentOwner":42,"./warning":155}],57:[function(e,t){"use strict";function n(){var e=p.current;return e&&e.constructor.displayName||void 0}function r(e,t){e._store.validated||null!=e.key||(e._store.validated=!0,i("react_key_warning",'Each child in an array should have a unique "key" prop.',e,t))}function o(e,t,n){v.test(e)&&i("react_numeric_key_warning","Child objects should have non-numeric keys so ordering is preserved.",t,n)}function i(e,t,r,o){var i=n(),a=o.displayName,s=i||a,u=f[e];if(!u.hasOwnProperty(s)){u[s]=!0,t+=i?" Check the render method of "+i+".":" Check the renderComponent call using <"+a+">.";var c=null;r._owner&&r._owner!==p.current&&(c=r._owner.constructor.displayName,t+=" It was passed a child from "+c+"."),t+=" See http://fb.me/react-warning-keys for more information.",d(e,{component:s,componentOwner:c}),console.warn(t)}}function a(){var e=n()||"";h.hasOwnProperty(e)||(h[e]=!0,d("react_object_map_children"))}function s(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++){var i=e[n];c.isValidElement(i)&&r(i,t)}else if(c.isValidElement(e))e._store.validated=!0;else if(e&&"object"==typeof e){a();for(var s in e)o(s,e[s],t)}}function u(e,t,n,r){for(var o in t)if(t.hasOwnProperty(o)){var i;try{i=t[o](n,o,e,r)}catch(a){i=a}i instanceof Error&&!(i.message in m)&&(m[i.message]=!0,d("react_failed_descriptor_type_check",{message:i.message}))}}var c=e("./ReactElement"),l=e("./ReactPropTypeLocations"),p=e("./ReactCurrentOwner"),d=e("./monitorCodeUse"),f={react_key_warning:{},react_numeric_key_warning:{}},h={},m={},v=/^\d+$/,y={createElement:function(e){var t=c.createElement.apply(this,arguments);if(null==t)return t;for(var n=2;n<arguments.length;n++)s(arguments[n],e);var r=e.displayName;return e.propTypes&&u(r,e.propTypes,t.props,l.prop),e.contextTypes&&u(r,e.contextTypes,t._context,l.context),t},createFactory:function(e){var t=y.createElement.bind(null,e);return t.type=e,t}};t.exports=y},{"./ReactCurrentOwner":42,"./ReactElement":56,"./ReactPropTypeLocations":76,"./monitorCodeUse":147}],58:[function(e,t){"use strict";function n(){return u(a),a()}function r(e){c[e]=!0}function o(e){delete c[e]}function i(e){return c[e]}var a,s=e("./ReactElement"),u=e("./invariant"),c={},l={injectEmptyComponent:function(e){a=s.createFactory(e)}},p={deregisterNullComponentID:o,getEmptyComponent:n,injection:l,isNullComponentID:i,registerNullComponentID:r};t.exports=p},{"./ReactElement":56,"./invariant":137}],59:[function(e,t){"use strict";var n={guard:function(e){return e}};t.exports=n},{}],60:[function(e,t){"use strict";function n(e){r.enqueueEvents(e),r.processEventQueue()}var r=e("./EventPluginHub"),o={handleTopLevel:function(e,t,o,i){var a=r.extractEvents(e,t,o,i);n(a)}};t.exports=o},{"./EventPluginHub":19}],61:[function(e,t){"use strict";function n(e){var t=l.getID(e),n=c.getReactRootIDFromNodeID(t),r=l.findReactContainerForID(n),o=l.getFirstReactDOM(r);return o}function r(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function o(e){for(var t=l.getFirstReactDOM(f(e.nativeEvent))||window,r=t;r;)e.ancestors.push(r),r=n(r);for(var o=0,i=e.ancestors.length;i>o;o++){t=e.ancestors[o];var a=l.getID(t)||"";m._handleTopLevel(e.topLevelType,t,a,e.nativeEvent)}}function i(e){var t=h(window);e(t)}var a=e("./EventListener"),s=e("./ExecutionEnvironment"),u=e("./PooledClass"),c=e("./ReactInstanceHandles"),l=e("./ReactMount"),p=e("./ReactUpdates"),d=e("./Object.assign"),f=e("./getEventTarget"),h=e("./getUnboundedScrollPosition");d(r.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),u.addPoolingTo(r,u.twoArgumentPooler);var m={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:s.canUseDOM?window:null,setHandleTopLevel:function(e){m._handleTopLevel=e},setEnabled:function(e){m._enabled=!!e},isEnabled:function(){return m._enabled},trapBubbledEvent:function(e,t,n){var r=n;return r?a.listen(r,t,m.dispatchEvent.bind(null,e)):void 0},trapCapturedEvent:function(e,t,n){var r=n;return r?a.capture(r,t,m.dispatchEvent.bind(null,e)):void 0},monitorScrollValue:function(e){var t=i.bind(null,e);a.listen(window,"scroll",t),a.listen(window,"resize",t)},dispatchEvent:function(e,t){if(m._enabled){var n=r.getPooled(e,t);try{p.batchedUpdates(o,n)}finally{r.release(n)}}}};t.exports=m},{"./EventListener":18,"./ExecutionEnvironment":23,"./Object.assign":29,"./PooledClass":30,"./ReactInstanceHandles":64,"./ReactMount":68,"./ReactUpdates":88,"./getEventTarget":128,"./getUnboundedScrollPosition":133}],62:[function(e,t){"use strict";var n=e("./DOMProperty"),r=e("./EventPluginHub"),o=e("./ReactComponent"),i=e("./ReactCompositeComponent"),a=e("./ReactEmptyComponent"),s=e("./ReactBrowserEventEmitter"),u=e("./ReactNativeComponent"),c=e("./ReactPerf"),l=e("./ReactRootIndex"),p=e("./ReactUpdates"),d={Component:o.injection,CompositeComponent:i.injection,DOMProperty:n.injection,EmptyComponent:a.injection,EventPluginHub:r.injection,EventEmitter:s.injection,NativeComponent:u.injection,Perf:c.injection,RootIndex:l.injection,Updates:p.injection};t.exports=d},{"./DOMProperty":12,"./EventPluginHub":19,"./ReactBrowserEventEmitter":33,"./ReactComponent":37,"./ReactCompositeComponent":40,"./ReactEmptyComponent":58,"./ReactNativeComponent":71,"./ReactPerf":73,"./ReactRootIndex":80,"./ReactUpdates":88}],63:[function(e,t){"use strict";function n(e){return o(document.documentElement,e)}var r=e("./ReactDOMSelection"),o=e("./containsNode"),i=e("./focusNode"),a=e("./getActiveElement"),s={hasSelectionCapabilities:function(e){return e&&("INPUT"===e.nodeName&&"text"===e.type||"TEXTAREA"===e.nodeName||"true"===e.contentEditable)},getSelectionInformation:function(){var e=a();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t=a(),r=e.focusedElem,o=e.selectionRange;t!==r&&n(r)&&(s.hasSelectionCapabilities(r)&&s.setSelection(r,o),i(r))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&"INPUT"===e.nodeName){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=r.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,o=t.end;if("undefined"==typeof o&&(o=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(o,e.value.length);else if(document.selection&&"INPUT"===e.nodeName){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",o-n),i.select()}else r.setOffsets(e,t)}};t.exports=s},{"./ReactDOMSelection":52,"./containsNode":111,"./focusNode":122,"./getActiveElement":124}],64:[function(e,t){"use strict";function n(e){return d+e.toString(36)}function r(e,t){return e.charAt(t)===d||t===e.length}function o(e){return""===e||e.charAt(0)===d&&e.charAt(e.length-1)!==d}function i(e,t){return 0===t.indexOf(e)&&r(t,e.length)}function a(e){return e?e.substr(0,e.lastIndexOf(d)):""}function s(e,t){if(p(o(e)&&o(t)),p(i(e,t)),e===t)return e;for(var n=e.length+f,a=n;a<t.length&&!r(t,a);a++);return t.substr(0,a)}function u(e,t){var n=Math.min(e.length,t.length);if(0===n)return"";for(var i=0,a=0;n>=a;a++)if(r(e,a)&&r(t,a))i=a;else if(e.charAt(a)!==t.charAt(a))break;var s=e.substr(0,i);return p(o(s)),s}function c(e,t,n,r,o,u){e=e||"",t=t||"",p(e!==t);var c=i(t,e);p(c||i(e,t));for(var l=0,d=c?a:s,f=e;;f=d(f,t)){var m;if(o&&f===e||u&&f===t||(m=n(f,c,r)),m===!1||f===t)break;p(l++<h)}}var l=e("./ReactRootIndex"),p=e("./invariant"),d=".",f=d.length,h=100,m={createReactRootID:function(){return n(l.createReactRootIndex())},createReactID:function(e,t){return e+t},getReactRootIDFromNodeID:function(e){if(e&&e.charAt(0)===d&&e.length>1){var t=e.indexOf(d,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var i=u(e,t);i!==e&&c(e,i,n,r,!1,!0),i!==t&&c(i,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(c("",e,t,n,!0,!1),c(e,"",t,n,!1,!0))},traverseAncestors:function(e,t,n){c("",e,t,n,!0,!1)},_getFirstCommonAncestorID:u,_getNextDescendantID:s,isAncestorIDOf:i,SEPARATOR:d};t.exports=m},{"./ReactRootIndex":80,"./invariant":137}],65:[function(e,t){"use strict";function n(e,t){if("function"==typeof t)for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];if("function"==typeof r){var o=r.bind(t);for(var i in r)r.hasOwnProperty(i)&&(o[i]=r[i]);e[n]=o}else e[n]=r}}var r=(e("./ReactCurrentOwner"),e("./invariant")),o=(e("./monitorCodeUse"),e("./warning"),{}),i={},a={};a.wrapCreateFactory=function(e){var t=function(t){return"function"!=typeof t?e(t):t.isReactNonLegacyFactory?e(t.type):t.isReactLegacyFactory?e(t.type):t};return t},a.wrapCreateElement=function(e){var t=function(t){if("function"!=typeof t)return e.apply(this,arguments);var n;return t.isReactNonLegacyFactory?(n=Array.prototype.slice.call(arguments,0),n[0]=t.type,e.apply(this,n)):t.isReactLegacyFactory?(t._isMockFunction&&(t.type._mockedReactClassConstructor=t),n=Array.prototype.slice.call(arguments,0),n[0]=t.type,e.apply(this,n)):t.apply(null,Array.prototype.slice.call(arguments,1))};return t},a.wrapFactory=function(e){r("function"==typeof e);var t=function(){return e.apply(this,arguments)};return n(t,e.type),t.isReactLegacyFactory=o,t.type=e.type,t},a.markNonLegacyFactory=function(e){return e.isReactNonLegacyFactory=i,e},a.isValidFactory=function(e){return"function"==typeof e&&e.isReactLegacyFactory===o},a.isValidClass=function(e){return a.isValidFactory(e)},a._isLegacyCallWarningEnabled=!0,t.exports=a},{"./ReactCurrentOwner":42,"./invariant":137,"./monitorCodeUse":147,"./warning":155}],66:[function(e,t){"use strict";function n(e,t){this.value=e,this.requestChange=t}function r(e){var t={value:"undefined"==typeof e?o.PropTypes.any.isRequired:e.isRequired,requestChange:o.PropTypes.func.isRequired};return o.PropTypes.shape(t)}var o=e("./React");n.PropTypes={link:r},t.exports=n},{"./React":31}],67:[function(e,t){"use strict";var n=e("./adler32"),r={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=n(e);return e.replace(">"," "+r.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var o=t.getAttribute(r.CHECKSUM_ATTR_NAME);o=o&&parseInt(o,10);var i=n(e);return i===o}};t.exports=r},{"./adler32":107}],68:[function(e,t){"use strict";function n(e){var t=E(e);return t&&I.getID(t)}function r(e){var t=o(e);if(t)if(x.hasOwnProperty(t)){var n=x[t];n!==e&&(R(!s(n,t)),x[t]=e)}else x[t]=e;return t}function o(e){return e&&e.getAttribute&&e.getAttribute(D)||""}function i(e,t){var n=o(e);n!==t&&delete x[n],e.setAttribute(D,t),x[t]=e}function a(e){return x.hasOwnProperty(e)&&s(x[e],e)||(x[e]=I.findReactNodeByID(e)),x[e]}function s(e,t){if(e){R(o(e)===t);var n=I.findReactContainerForID(t);if(n&&y(n,e))return!0}return!1}function u(e){delete x[e]}function c(e){var t=x[e];return t&&s(t,e)?void(N=t):!1}function l(e){N=null,m.traverseAncestors(e,c);var t=N;return N=null,t}var p=e("./DOMProperty"),d=e("./ReactBrowserEventEmitter"),f=(e("./ReactCurrentOwner"),e("./ReactElement")),h=e("./ReactLegacyElement"),m=e("./ReactInstanceHandles"),v=e("./ReactPerf"),y=e("./containsNode"),g=e("./deprecated"),E=e("./getReactRootElementInContainer"),C=e("./instantiateReactComponent"),R=e("./invariant"),M=e("./shouldUpdateReactComponent"),b=(e("./warning"),h.wrapCreateElement(f.createElement)),O=m.SEPARATOR,D=p.ID_ATTRIBUTE_NAME,x={},P=1,T=9,w={},_={},S=[],N=null,I={_instancesByReactRootID:w,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){var o=t.props;return I.scrollMonitor(n,function(){e.replaceProps(o,r)}),e},_registerComponent:function(e,t){R(t&&(t.nodeType===P||t.nodeType===T)),d.ensureScrollValueMonitoring();var n=I.registerContainer(t);return w[n]=e,n},_renderNewRootComponent:v.measure("ReactMount","_renderNewRootComponent",function(e,t,n){var r=C(e,null),o=I._registerComponent(r,t);return r.mountComponentIntoNode(o,t,n),r}),render:function(e,t,r){R(f.isValidElement(e));var o=w[n(t)];if(o){var i=o._currentElement;if(M(i,e))return I._updateRootComponent(o,e,t,r);I.unmountComponentAtNode(t)}var a=E(t),s=a&&I.isRenderedByReact(a),u=s&&!o,c=I._renderNewRootComponent(e,t,u);return r&&r.call(c),c},constructAndRenderComponent:function(e,t,n){var r=b(e,t);return I.render(r,n)},constructAndRenderComponentByID:function(e,t,n){var r=document.getElementById(n);return R(r),I.constructAndRenderComponent(e,t,r)},registerContainer:function(e){var t=n(e);return t&&(t=m.getReactRootIDFromNodeID(t)),t||(t=m.createReactRootID()),_[t]=e,t},unmountComponentAtNode:function(e){var t=n(e),r=w[t];return r?(I.unmountComponentFromNode(r,e),delete w[t],delete _[t],!0):!1},unmountComponentFromNode:function(e,t){for(e.unmountComponent(),t.nodeType===T&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)},findReactContainerForID:function(e){var t=m.getReactRootIDFromNodeID(e),n=_[t];return n},findReactNodeByID:function(e){var t=I.findReactContainerForID(e);return I.findComponentRoot(t,e)},isRenderedByReact:function(e){if(1!==e.nodeType)return!1;var t=I.getID(e);return t?t.charAt(0)===O:!1},getFirstReactDOM:function(e){for(var t=e;t&&t.parentNode!==t;){if(I.isRenderedByReact(t))return t;t=t.parentNode}return null},findComponentRoot:function(e,t){var n=S,r=0,o=l(t)||e;for(n[0]=o.firstChild,n.length=1;r<n.length;){for(var i,a=n[r++];a;){var s=I.getID(a);s?t===s?i=a:m.isAncestorIDOf(s,t)&&(n.length=r=0,n.push(a.firstChild)):n.push(a.firstChild),a=a.nextSibling}if(i)return n.length=0,i}n.length=0,R(!1)},getReactRootID:n,getID:r,setID:i,getNode:a,purgeID:u};I.renderComponent=g("ReactMount","renderComponent","render",this,I.render),t.exports=I},{"./DOMProperty":12,"./ReactBrowserEventEmitter":33,"./ReactCurrentOwner":42,"./ReactElement":56,"./ReactInstanceHandles":64,"./ReactLegacyElement":65,"./ReactPerf":73,"./containsNode":111,"./deprecated":117,"./getReactRootElementInContainer":131,"./instantiateReactComponent":136,"./invariant":137,"./shouldUpdateReactComponent":151,"./warning":155}],69:[function(e,t){"use strict";function n(e,t,n){h.push({parentID:e,parentNode:null,type:c.INSERT_MARKUP,markupIndex:m.push(t)-1,textContent:null,fromIndex:null,toIndex:n})}function r(e,t,n){h.push({parentID:e,parentNode:null,type:c.MOVE_EXISTING,markupIndex:null,textContent:null,fromIndex:t,toIndex:n})}function o(e,t){h.push({parentID:e,parentNode:null,type:c.REMOVE_NODE,markupIndex:null,textContent:null,fromIndex:t,toIndex:null})}function i(e,t){h.push({parentID:e,parentNode:null,type:c.TEXT_CONTENT,markupIndex:null,textContent:t,fromIndex:null,toIndex:null})}function a(){h.length&&(u.BackendIDOperations.dangerouslyProcessChildrenUpdates(h,m),s())}function s(){h.length=0,m.length=0}var u=e("./ReactComponent"),c=e("./ReactMultiChildUpdateTypes"),l=e("./flattenChildren"),p=e("./instantiateReactComponent"),d=e("./shouldUpdateReactComponent"),f=0,h=[],m=[],v={Mixin:{mountChildren:function(e,t){var n=l(e),r=[],o=0;this._renderedChildren=n;for(var i in n){var a=n[i];if(n.hasOwnProperty(i)){var s=p(a,null);n[i]=s;var u=this._rootNodeID+i,c=s.mountComponent(u,t,this._mountDepth+1);s._mountIndex=o,r.push(c),o++}}return r},updateTextContent:function(e){f++;var t=!0;try{var n=this._renderedChildren;for(var r in n)n.hasOwnProperty(r)&&this._unmountChildByName(n[r],r);this.setTextContent(e),t=!1}finally{f--,f||(t?s():a())}},updateChildren:function(e,t){f++;var n=!0;try{this._updateChildren(e,t),n=!1}finally{f--,f||(n?s():a())}},_updateChildren:function(e,t){var n=l(e),r=this._renderedChildren;if(n||r){var o,i=0,a=0;for(o in n)if(n.hasOwnProperty(o)){var s=r&&r[o],u=s&&s._currentElement,c=n[o];if(d(u,c))this.moveChild(s,a,i),i=Math.max(s._mountIndex,i),s.receiveComponent(c,t),s._mountIndex=a;else{s&&(i=Math.max(s._mountIndex,i),this._unmountChildByName(s,o));var f=p(c,null);this._mountChildByNameAtIndex(f,o,a,t)}a++}for(o in r)!r.hasOwnProperty(o)||n&&n[o]||this._unmountChildByName(r[o],o)}},unmountChildren:function(){var e=this._renderedChildren;for(var t in e){var n=e[t];n.unmountComponent&&n.unmountComponent()}this._renderedChildren=null},moveChild:function(e,t,n){e._mountIndex<n&&r(this._rootNodeID,e._mountIndex,t)},createChild:function(e,t){n(this._rootNodeID,t,e._mountIndex)},removeChild:function(e){o(this._rootNodeID,e._mountIndex)},setTextContent:function(e){i(this._rootNodeID,e)},_mountChildByNameAtIndex:function(e,t,n,r){var o=this._rootNodeID+t,i=e.mountComponent(o,r,this._mountDepth+1);e._mountIndex=n,this.createChild(e,i),this._renderedChildren=this._renderedChildren||{},this._renderedChildren[t]=e},_unmountChildByName:function(e,t){this.removeChild(e),e._mountIndex=null,e.unmountComponent(),delete this._renderedChildren[t]}}};t.exports=v},{"./ReactComponent":37,"./ReactMultiChildUpdateTypes":70,"./flattenChildren":121,"./instantiateReactComponent":136,"./shouldUpdateReactComponent":151}],70:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({INSERT_MARKUP:null,MOVE_EXISTING:null,REMOVE_NODE:null,TEXT_CONTENT:null});t.exports=r},{"./keyMirror":143}],71:[function(e,t){"use strict";function n(e,t,n){var r=a[e];return null==r?(o(i),new i(e,t)):n===e?(o(i),new i(e,t)):new r.type(t)}var r=e("./Object.assign"),o=e("./invariant"),i=null,a={},s={injectGenericComponentClass:function(e){i=e},injectComponentClasses:function(e){r(a,e)}},u={createInstanceForTag:n,injection:s};t.exports=u},{"./Object.assign":29,"./invariant":137}],72:[function(e,t){"use strict";var n=e("./emptyObject"),r=e("./invariant"),o={isValidOwner:function(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)},addComponentAsRefTo:function(e,t,n){r(o.isValidOwner(n)),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){r(o.isValidOwner(n)),n.refs[t]===e&&n.detachRef(t)},Mixin:{construct:function(){this.refs=n},attachRef:function(e,t){r(t.isOwnedBy(this));var o=this.refs===n?this.refs={}:this.refs;o[e]=t},detachRef:function(e){delete this.refs[e]}}};t.exports=o},{"./emptyObject":119,"./invariant":137}],73:[function(e,t){"use strict";function n(e,t,n){return n}var r={enableMeasure:!1,storedMeasure:n,measure:function(e,t,n){return n},injection:{injectMeasure:function(e){r.storedMeasure=e}}};t.exports=r},{}],74:[function(e,t){"use strict";function n(e){return function(t,n,r){t[n]=t.hasOwnProperty(n)?e(t[n],r):r}}function r(e,t){for(var n in t)if(t.hasOwnProperty(n)){var r=c[n];r&&c.hasOwnProperty(n)?r(e,n,t[n]):e.hasOwnProperty(n)||(e[n]=t[n])}return e}var o=e("./Object.assign"),i=e("./emptyFunction"),a=e("./invariant"),s=e("./joinClasses"),u=(e("./warning"),n(function(e,t){return o({},t,e)})),c={children:i,className:n(s),style:u},l={TransferStrategies:c,mergeProps:function(e,t){return r(o({},e),t)},Mixin:{transferPropsTo:function(e){return a(e._owner===this),r(e.props,this.props),e}}};t.exports=l},{"./Object.assign":29,"./emptyFunction":118,"./invariant":137,"./joinClasses":142,"./warning":155}],75:[function(e,t){"use strict";var n={};t.exports=n},{}],76:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({prop:null,context:null,childContext:null});t.exports=r},{"./keyMirror":143}],77:[function(e,t){"use strict";function n(e){function t(t,n,r,o,i){if(o=o||C,null!=n[r])return e(n,r,o,i);var a=y[i];return t?new Error("Required "+a+" `"+r+"` was not specified in "+("`"+o+"`.")):void 0}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function r(e){function t(t,n,r,o){var i=t[n],a=h(i);if(a!==e){var s=y[o],u=m(i);return new Error("Invalid "+s+" `"+n+"` of type `"+u+"` "+("supplied to `"+r+"`, expected `"+e+"`."))}}return n(t)}function o(){return n(E.thatReturns())}function i(e){function t(t,n,r,o){var i=t[n];if(!Array.isArray(i)){var a=y[o],s=h(i);return new Error("Invalid "+a+" `"+n+"` of type "+("`"+s+"` supplied to `"+r+"`, expected an array."))}for(var u=0;u<i.length;u++){var c=e(i,u,r,o);if(c instanceof Error)return c}}return n(t)}function a(){function e(e,t,n,r){if(!v.isValidElement(e[t])){var o=y[r];return new Error("Invalid "+o+" `"+t+"` supplied to "+("`"+n+"`, expected a ReactElement."))}}return n(e)}function s(e){function t(t,n,r,o){if(!(t[n]instanceof e)){var i=y[o],a=e.name||C;return new Error("Invalid "+i+" `"+n+"` supplied to "+("`"+r+"`, expected instance of `"+a+"`."))}}return n(t)}function u(e){function t(t,n,r,o){for(var i=t[n],a=0;a<e.length;a++)if(i===e[a])return;var s=y[o],u=JSON.stringify(e);return new Error("Invalid "+s+" `"+n+"` of value `"+i+"` "+("supplied to `"+r+"`, expected one of "+u+"."))}return n(t)}function c(e){function t(t,n,r,o){var i=t[n],a=h(i);if("object"!==a){var s=y[o];return new Error("Invalid "+s+" `"+n+"` of type "+("`"+a+"` supplied to `"+r+"`, expected an object."))
     15}for(var u in i)if(i.hasOwnProperty(u)){var c=e(i,u,r,o);if(c instanceof Error)return c}}return n(t)}function l(e){function t(t,n,r,o){for(var i=0;i<e.length;i++){var a=e[i];if(null==a(t,n,r,o))return}var s=y[o];return new Error("Invalid "+s+" `"+n+"` supplied to "+("`"+r+"`."))}return n(t)}function p(){function e(e,t,n,r){if(!f(e[t])){var o=y[r];return new Error("Invalid "+o+" `"+t+"` supplied to "+("`"+n+"`, expected a ReactNode."))}}return n(e)}function d(e){function t(t,n,r,o){var i=t[n],a=h(i);if("object"!==a){var s=y[o];return new Error("Invalid "+s+" `"+n+"` of type `"+a+"` "+("supplied to `"+r+"`, expected `object`."))}for(var u in e){var c=e[u];if(c){var l=c(i,u,r,o);if(l)return l}}}return n(t,"expected `object`")}function f(e){switch(typeof e){case"number":case"string":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(f);if(v.isValidElement(e))return!0;for(var t in e)if(!f(e[t]))return!1;return!0;default:return!1}}function h(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":t}function m(e){var t=h(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}var v=e("./ReactElement"),y=e("./ReactPropTypeLocationNames"),g=e("./deprecated"),E=e("./emptyFunction"),C="<<anonymous>>",R=a(),M=p(),b={array:r("array"),bool:r("boolean"),func:r("function"),number:r("number"),object:r("object"),string:r("string"),any:o(),arrayOf:i,element:R,instanceOf:s,node:M,objectOf:c,oneOf:u,oneOfType:l,shape:d,component:g("React.PropTypes","component","element",this,R),renderable:g("React.PropTypes","renderable","node",this,M)};t.exports=b},{"./ReactElement":56,"./ReactPropTypeLocationNames":75,"./deprecated":117,"./emptyFunction":118}],78:[function(e,t){"use strict";function n(){this.listenersToPut=[]}var r=e("./PooledClass"),o=e("./ReactBrowserEventEmitter"),i=e("./Object.assign");i(n.prototype,{enqueuePutListener:function(e,t,n){this.listenersToPut.push({rootNodeID:e,propKey:t,propValue:n})},putListeners:function(){for(var e=0;e<this.listenersToPut.length;e++){var t=this.listenersToPut[e];o.putListener(t.rootNodeID,t.propKey,t.propValue)}},reset:function(){this.listenersToPut.length=0},destructor:function(){this.reset()}}),r.addPoolingTo(n),t.exports=n},{"./Object.assign":29,"./PooledClass":30,"./ReactBrowserEventEmitter":33}],79:[function(e,t){"use strict";function n(){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=r.getPooled(null),this.putListenerQueue=s.getPooled()}var r=e("./CallbackQueue"),o=e("./PooledClass"),i=e("./ReactBrowserEventEmitter"),a=e("./ReactInputSelection"),s=e("./ReactPutListenerQueue"),u=e("./Transaction"),c=e("./Object.assign"),l={initialize:a.getSelectionInformation,close:a.restoreSelection},p={initialize:function(){var e=i.isEnabled();return i.setEnabled(!1),e},close:function(e){i.setEnabled(e)}},d={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},f={initialize:function(){this.putListenerQueue.reset()},close:function(){this.putListenerQueue.putListeners()}},h=[f,l,p,d],m={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},getPutListenerQueue:function(){return this.putListenerQueue},destructor:function(){r.release(this.reactMountReady),this.reactMountReady=null,s.release(this.putListenerQueue),this.putListenerQueue=null}};c(n.prototype,u.Mixin,m),o.addPoolingTo(n),t.exports=n},{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactBrowserEventEmitter":33,"./ReactInputSelection":63,"./ReactPutListenerQueue":78,"./Transaction":104}],80:[function(e,t){"use strict";var n={injectCreateReactRootIndex:function(e){r.createReactRootIndex=e}},r={createReactRootIndex:null,injection:n};t.exports=r},{}],81:[function(e,t){"use strict";function n(e){c(o.isValidElement(e));var t;try{var n=i.createReactRootID();return t=s.getPooled(!1),t.perform(function(){var r=u(e,null),o=r.mountComponent(n,t,0);return a.addChecksumToMarkup(o)},null)}finally{s.release(t)}}function r(e){c(o.isValidElement(e));var t;try{var n=i.createReactRootID();return t=s.getPooled(!0),t.perform(function(){var r=u(e,null);return r.mountComponent(n,t,0)},null)}finally{s.release(t)}}var o=e("./ReactElement"),i=e("./ReactInstanceHandles"),a=e("./ReactMarkupChecksum"),s=e("./ReactServerRenderingTransaction"),u=e("./instantiateReactComponent"),c=e("./invariant");t.exports={renderToString:n,renderToStaticMarkup:r}},{"./ReactElement":56,"./ReactInstanceHandles":64,"./ReactMarkupChecksum":67,"./ReactServerRenderingTransaction":82,"./instantiateReactComponent":136,"./invariant":137}],82:[function(e,t){"use strict";function n(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.reactMountReady=o.getPooled(null),this.putListenerQueue=i.getPooled()}var r=e("./PooledClass"),o=e("./CallbackQueue"),i=e("./ReactPutListenerQueue"),a=e("./Transaction"),s=e("./Object.assign"),u=e("./emptyFunction"),c={initialize:function(){this.reactMountReady.reset()},close:u},l={initialize:function(){this.putListenerQueue.reset()},close:u},p=[l,c],d={getTransactionWrappers:function(){return p},getReactMountReady:function(){return this.reactMountReady},getPutListenerQueue:function(){return this.putListenerQueue},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null,i.release(this.putListenerQueue),this.putListenerQueue=null}};s(n.prototype,a.Mixin,d),r.addPoolingTo(n),t.exports=n},{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactPutListenerQueue":78,"./Transaction":104,"./emptyFunction":118}],83:[function(e,t){"use strict";function n(e,t){var n={};return function(r){n[t]=r,e.setState(n)}}var r={createStateSetter:function(e,t){return function(n,r,o,i,a,s){var u=t.call(e,n,r,o,i,a,s);u&&e.setState(u)}},createStateKeySetter:function(e,t){var r=e.__keySetters||(e.__keySetters={});return r[t]||(r[t]=n(e,t))}};r.Mixin={createStateSetter:function(e){return r.createStateSetter(this,e)},createStateKeySetter:function(e){return r.createStateKeySetter(this,e)}},t.exports=r},{}],84:[function(e,t){"use strict";var n=e("./DOMPropertyOperations"),r=e("./ReactComponent"),o=e("./ReactElement"),i=e("./Object.assign"),a=e("./escapeTextForBrowser"),s=function(){};i(s.prototype,r.Mixin,{mountComponent:function(e,t,o){r.Mixin.mountComponent.call(this,e,t,o);var i=a(this.props);return t.renderToStaticMarkup?i:"<span "+n.createMarkupForID(e)+">"+i+"</span>"},receiveComponent:function(e){var t=e.props;t!==this.props&&(this.props=t,r.BackendIDOperations.updateTextContentByID(this._rootNodeID,t))}});var u=function(e){return new o(s,null,null,null,null,e)};u.type=s,t.exports=u},{"./DOMPropertyOperations":13,"./Object.assign":29,"./ReactComponent":37,"./ReactElement":56,"./escapeTextForBrowser":120}],85:[function(e,t){"use strict";var n=e("./ReactChildren"),r={getChildMapping:function(e){return n.map(e,function(e){return e})},mergeChildMappings:function(e,t){function n(n){return t.hasOwnProperty(n)?t[n]:e[n]}e=e||{},t=t||{};var r={},o=[];for(var i in e)t.hasOwnProperty(i)?o.length&&(r[i]=o,o=[]):o.push(i);var a,s={};for(var u in t){if(r.hasOwnProperty(u))for(a=0;a<r[u].length;a++){var c=r[u][a];s[r[u][a]]=n(c)}s[u]=n(u)}for(a=0;a<o.length;a++)s[o[a]]=n(o[a]);return s}};t.exports=r},{"./ReactChildren":36}],86:[function(e,t){"use strict";function n(){var e=document.createElement("div"),t=e.style;"AnimationEvent"in window||delete a.animationend.animation,"TransitionEvent"in window||delete a.transitionend.transition;for(var n in a){var r=a[n];for(var o in r)if(o in t){s.push(r[o]);break}}}function r(e,t,n){e.addEventListener(t,n,!1)}function o(e,t,n){e.removeEventListener(t,n,!1)}var i=e("./ExecutionEnvironment"),a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},s=[];i.canUseDOM&&n();var u={addEndEventListener:function(e,t){return 0===s.length?void window.setTimeout(t,0):void s.forEach(function(n){r(e,n,t)})},removeEndEventListener:function(e,t){0!==s.length&&s.forEach(function(n){o(e,n,t)})}};t.exports=u},{"./ExecutionEnvironment":23}],87:[function(e,t){"use strict";var n=e("./React"),r=e("./ReactTransitionChildMapping"),o=e("./Object.assign"),i=e("./cloneWithProps"),a=e("./emptyFunction"),s=n.createClass({displayName:"ReactTransitionGroup",propTypes:{component:n.PropTypes.any,childFactory:n.PropTypes.func},getDefaultProps:function(){return{component:"span",childFactory:a.thatReturnsArgument}},getInitialState:function(){return{children:r.getChildMapping(this.props.children)}},componentWillReceiveProps:function(e){var t=r.getChildMapping(e.children),n=this.state.children;this.setState({children:r.mergeChildMappings(n,t)});var o;for(o in t){var i=n&&n.hasOwnProperty(o);!t[o]||i||this.currentlyTransitioningKeys[o]||this.keysToEnter.push(o)}for(o in n){var a=t&&t.hasOwnProperty(o);!n[o]||a||this.currentlyTransitioningKeys[o]||this.keysToLeave.push(o)}},componentWillMount:function(){this.currentlyTransitioningKeys={},this.keysToEnter=[],this.keysToLeave=[]},componentDidUpdate:function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)},performEnter:function(e){this.currentlyTransitioningKeys[e]=!0;var t=this.refs[e];t.componentWillEnter?t.componentWillEnter(this._handleDoneEntering.bind(this,e)):this._handleDoneEntering(e)},_handleDoneEntering:function(e){var t=this.refs[e];t.componentDidEnter&&t.componentDidEnter(),delete this.currentlyTransitioningKeys[e];var n=r.getChildMapping(this.props.children);n&&n.hasOwnProperty(e)||this.performLeave(e)},performLeave:function(e){this.currentlyTransitioningKeys[e]=!0;var t=this.refs[e];t.componentWillLeave?t.componentWillLeave(this._handleDoneLeaving.bind(this,e)):this._handleDoneLeaving(e)},_handleDoneLeaving:function(e){var t=this.refs[e];t.componentDidLeave&&t.componentDidLeave(),delete this.currentlyTransitioningKeys[e];var n=r.getChildMapping(this.props.children);if(n&&n.hasOwnProperty(e))this.performEnter(e);else{var i=o({},this.state.children);delete i[e],this.setState({children:i})}},render:function(){var e={};for(var t in this.state.children){var r=this.state.children[t];r&&(e[t]=i(this.props.childFactory(r),{ref:t}))}return n.createElement(this.props.component,this.props,e)}});t.exports=s},{"./Object.assign":29,"./React":31,"./ReactTransitionChildMapping":85,"./cloneWithProps":110,"./emptyFunction":118}],88:[function(e,t){"use strict";function n(){h(O.ReactReconcileTransaction&&g)}function r(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=c.getPooled(),this.reconcileTransaction=O.ReactReconcileTransaction.getPooled()}function o(e,t,r){n(),g.batchedUpdates(e,t,r)}function i(e,t){return e._mountDepth-t._mountDepth}function a(e){var t=e.dirtyComponentsLength;h(t===m.length),m.sort(i);for(var n=0;t>n;n++){var r=m[n];if(r.isMounted()){var o=r._pendingCallbacks;if(r._pendingCallbacks=null,r.performUpdateIfNecessary(e.reconcileTransaction),o)for(var a=0;a<o.length;a++)e.callbackQueue.enqueue(o[a],r)}}}function s(e,t){return h(!t||"function"==typeof t),n(),g.isBatchingUpdates?(m.push(e),void(t&&(e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t]))):void g.batchedUpdates(s,e,t)}function u(e,t){h(g.isBatchingUpdates),v.enqueue(e,t),y=!0}var c=e("./CallbackQueue"),l=e("./PooledClass"),p=(e("./ReactCurrentOwner"),e("./ReactPerf")),d=e("./Transaction"),f=e("./Object.assign"),h=e("./invariant"),m=(e("./warning"),[]),v=c.getPooled(),y=!1,g=null,E={initialize:function(){this.dirtyComponentsLength=m.length},close:function(){this.dirtyComponentsLength!==m.length?(m.splice(0,this.dirtyComponentsLength),M()):m.length=0}},C={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},R=[E,C];f(r.prototype,d.Mixin,{getTransactionWrappers:function(){return R},destructor:function(){this.dirtyComponentsLength=null,c.release(this.callbackQueue),this.callbackQueue=null,O.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return d.Mixin.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),l.addPoolingTo(r);var M=p.measure("ReactUpdates","flushBatchedUpdates",function(){for(;m.length||y;){if(m.length){var e=r.getPooled();e.perform(a,null,e),r.release(e)}if(y){y=!1;var t=v;v=c.getPooled(),t.notifyAll(),c.release(t)}}}),b={injectReconcileTransaction:function(e){h(e),O.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){h(e),h("function"==typeof e.batchedUpdates),h("boolean"==typeof e.isBatchingUpdates),g=e}},O={ReactReconcileTransaction:null,batchedUpdates:o,enqueueUpdate:s,flushBatchedUpdates:M,injection:b,asap:u};t.exports=O},{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactCurrentOwner":42,"./ReactPerf":73,"./Transaction":104,"./invariant":137,"./warning":155}],89:[function(e,t){"use strict";var n=e("./DOMProperty"),r=n.injection.MUST_USE_ATTRIBUTE,o={Properties:{cx:r,cy:r,d:r,dx:r,dy:r,fill:r,fillOpacity:r,fontFamily:r,fontSize:r,fx:r,fy:r,gradientTransform:r,gradientUnits:r,markerEnd:r,markerMid:r,markerStart:r,offset:r,opacity:r,patternContentUnits:r,patternUnits:r,points:r,preserveAspectRatio:r,r:r,rx:r,ry:r,spreadMethod:r,stopColor:r,stopOpacity:r,stroke:r,strokeDasharray:r,strokeLinecap:r,strokeOpacity:r,strokeWidth:r,textAnchor:r,transform:r,version:r,viewBox:r,x1:r,x2:r,x:r,y1:r,y2:r,y:r},DOMAttributeNames:{fillOpacity:"fill-opacity",fontFamily:"font-family",fontSize:"font-size",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",patternContentUnits:"patternContentUnits",patternUnits:"patternUnits",preserveAspectRatio:"preserveAspectRatio",spreadMethod:"spreadMethod",stopColor:"stop-color",stopOpacity:"stop-opacity",strokeDasharray:"stroke-dasharray",strokeLinecap:"stroke-linecap",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",viewBox:"viewBox"}};t.exports=o},{"./DOMProperty":12}],90:[function(e,t){"use strict";function n(e){if("selectionStart"in e&&a.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function r(e){if(!y&&null!=h&&h==u()){var t=n(h);if(!v||!p(v,t)){v=t;var r=s.getPooled(f.select,m,e);return r.type="select",r.target=h,i.accumulateTwoPhaseDispatches(r),r}}}var o=e("./EventConstants"),i=e("./EventPropagators"),a=e("./ReactInputSelection"),s=e("./SyntheticEvent"),u=e("./getActiveElement"),c=e("./isTextInputElement"),l=e("./keyOf"),p=e("./shallowEqual"),d=o.topLevelTypes,f={select:{phasedRegistrationNames:{bubbled:l({onSelect:null}),captured:l({onSelectCapture:null})},dependencies:[d.topBlur,d.topContextMenu,d.topFocus,d.topKeyDown,d.topMouseDown,d.topMouseUp,d.topSelectionChange]}},h=null,m=null,v=null,y=!1,g={eventTypes:f,extractEvents:function(e,t,n,o){switch(e){case d.topFocus:(c(t)||"true"===t.contentEditable)&&(h=t,m=n,v=null);break;case d.topBlur:h=null,m=null,v=null;break;case d.topMouseDown:y=!0;break;case d.topContextMenu:case d.topMouseUp:return y=!1,r(o);case d.topSelectionChange:case d.topKeyDown:case d.topKeyUp:return r(o)}}};t.exports=g},{"./EventConstants":17,"./EventPropagators":22,"./ReactInputSelection":63,"./SyntheticEvent":96,"./getActiveElement":124,"./isTextInputElement":140,"./keyOf":144,"./shallowEqual":150}],91:[function(e,t){"use strict";var n=Math.pow(2,53),r={createReactRootIndex:function(){return Math.ceil(Math.random()*n)}};t.exports=r},{}],92:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./EventPluginUtils"),o=e("./EventPropagators"),i=e("./SyntheticClipboardEvent"),a=e("./SyntheticEvent"),s=e("./SyntheticFocusEvent"),u=e("./SyntheticKeyboardEvent"),c=e("./SyntheticMouseEvent"),l=e("./SyntheticDragEvent"),p=e("./SyntheticTouchEvent"),d=e("./SyntheticUIEvent"),f=e("./SyntheticWheelEvent"),h=e("./getEventCharCode"),m=e("./invariant"),v=e("./keyOf"),y=(e("./warning"),n.topLevelTypes),g={blur:{phasedRegistrationNames:{bubbled:v({onBlur:!0}),captured:v({onBlurCapture:!0})}},click:{phasedRegistrationNames:{bubbled:v({onClick:!0}),captured:v({onClickCapture:!0})}},contextMenu:{phasedRegistrationNames:{bubbled:v({onContextMenu:!0}),captured:v({onContextMenuCapture:!0})}},copy:{phasedRegistrationNames:{bubbled:v({onCopy:!0}),captured:v({onCopyCapture:!0})}},cut:{phasedRegistrationNames:{bubbled:v({onCut:!0}),captured:v({onCutCapture:!0})}},doubleClick:{phasedRegistrationNames:{bubbled:v({onDoubleClick:!0}),captured:v({onDoubleClickCapture:!0})}},drag:{phasedRegistrationNames:{bubbled:v({onDrag:!0}),captured:v({onDragCapture:!0})}},dragEnd:{phasedRegistrationNames:{bubbled:v({onDragEnd:!0}),captured:v({onDragEndCapture:!0})}},dragEnter:{phasedRegistrationNames:{bubbled:v({onDragEnter:!0}),captured:v({onDragEnterCapture:!0})}},dragExit:{phasedRegistrationNames:{bubbled:v({onDragExit:!0}),captured:v({onDragExitCapture:!0})}},dragLeave:{phasedRegistrationNames:{bubbled:v({onDragLeave:!0}),captured:v({onDragLeaveCapture:!0})}},dragOver:{phasedRegistrationNames:{bubbled:v({onDragOver:!0}),captured:v({onDragOverCapture:!0})}},dragStart:{phasedRegistrationNames:{bubbled:v({onDragStart:!0}),captured:v({onDragStartCapture:!0})}},drop:{phasedRegistrationNames:{bubbled:v({onDrop:!0}),captured:v({onDropCapture:!0})}},focus:{phasedRegistrationNames:{bubbled:v({onFocus:!0}),captured:v({onFocusCapture:!0})}},input:{phasedRegistrationNames:{bubbled:v({onInput:!0}),captured:v({onInputCapture:!0})}},keyDown:{phasedRegistrationNames:{bubbled:v({onKeyDown:!0}),captured:v({onKeyDownCapture:!0})}},keyPress:{phasedRegistrationNames:{bubbled:v({onKeyPress:!0}),captured:v({onKeyPressCapture:!0})}},keyUp:{phasedRegistrationNames:{bubbled:v({onKeyUp:!0}),captured:v({onKeyUpCapture:!0})}},load:{phasedRegistrationNames:{bubbled:v({onLoad:!0}),captured:v({onLoadCapture:!0})}},error:{phasedRegistrationNames:{bubbled:v({onError:!0}),captured:v({onErrorCapture:!0})}},mouseDown:{phasedRegistrationNames:{bubbled:v({onMouseDown:!0}),captured:v({onMouseDownCapture:!0})}},mouseMove:{phasedRegistrationNames:{bubbled:v({onMouseMove:!0}),captured:v({onMouseMoveCapture:!0})}},mouseOut:{phasedRegistrationNames:{bubbled:v({onMouseOut:!0}),captured:v({onMouseOutCapture:!0})}},mouseOver:{phasedRegistrationNames:{bubbled:v({onMouseOver:!0}),captured:v({onMouseOverCapture:!0})}},mouseUp:{phasedRegistrationNames:{bubbled:v({onMouseUp:!0}),captured:v({onMouseUpCapture:!0})}},paste:{phasedRegistrationNames:{bubbled:v({onPaste:!0}),captured:v({onPasteCapture:!0})}},reset:{phasedRegistrationNames:{bubbled:v({onReset:!0}),captured:v({onResetCapture:!0})}},scroll:{phasedRegistrationNames:{bubbled:v({onScroll:!0}),captured:v({onScrollCapture:!0})}},submit:{phasedRegistrationNames:{bubbled:v({onSubmit:!0}),captured:v({onSubmitCapture:!0})}},touchCancel:{phasedRegistrationNames:{bubbled:v({onTouchCancel:!0}),captured:v({onTouchCancelCapture:!0})}},touchEnd:{phasedRegistrationNames:{bubbled:v({onTouchEnd:!0}),captured:v({onTouchEndCapture:!0})}},touchMove:{phasedRegistrationNames:{bubbled:v({onTouchMove:!0}),captured:v({onTouchMoveCapture:!0})}},touchStart:{phasedRegistrationNames:{bubbled:v({onTouchStart:!0}),captured:v({onTouchStartCapture:!0})}},wheel:{phasedRegistrationNames:{bubbled:v({onWheel:!0}),captured:v({onWheelCapture:!0})}}},E={topBlur:g.blur,topClick:g.click,topContextMenu:g.contextMenu,topCopy:g.copy,topCut:g.cut,topDoubleClick:g.doubleClick,topDrag:g.drag,topDragEnd:g.dragEnd,topDragEnter:g.dragEnter,topDragExit:g.dragExit,topDragLeave:g.dragLeave,topDragOver:g.dragOver,topDragStart:g.dragStart,topDrop:g.drop,topError:g.error,topFocus:g.focus,topInput:g.input,topKeyDown:g.keyDown,topKeyPress:g.keyPress,topKeyUp:g.keyUp,topLoad:g.load,topMouseDown:g.mouseDown,topMouseMove:g.mouseMove,topMouseOut:g.mouseOut,topMouseOver:g.mouseOver,topMouseUp:g.mouseUp,topPaste:g.paste,topReset:g.reset,topScroll:g.scroll,topSubmit:g.submit,topTouchCancel:g.touchCancel,topTouchEnd:g.touchEnd,topTouchMove:g.touchMove,topTouchStart:g.touchStart,topWheel:g.wheel};for(var C in E)E[C].dependencies=[C];var R={eventTypes:g,executeDispatch:function(e,t,n){var o=r.executeDispatch(e,t,n);o===!1&&(e.stopPropagation(),e.preventDefault())},extractEvents:function(e,t,n,r){var v=E[e];if(!v)return null;var g;switch(e){case y.topInput:case y.topLoad:case y.topError:case y.topReset:case y.topSubmit:g=a;break;case y.topKeyPress:if(0===h(r))return null;case y.topKeyDown:case y.topKeyUp:g=u;break;case y.topBlur:case y.topFocus:g=s;break;case y.topClick:if(2===r.button)return null;case y.topContextMenu:case y.topDoubleClick:case y.topMouseDown:case y.topMouseMove:case y.topMouseOut:case y.topMouseOver:case y.topMouseUp:g=c;break;case y.topDrag:case y.topDragEnd:case y.topDragEnter:case y.topDragExit:case y.topDragLeave:case y.topDragOver:case y.topDragStart:case y.topDrop:g=l;break;case y.topTouchCancel:case y.topTouchEnd:case y.topTouchMove:case y.topTouchStart:g=p;break;case y.topScroll:g=d;break;case y.topWheel:g=f;break;case y.topCopy:case y.topCut:case y.topPaste:g=i}m(g);var C=g.getPooled(v,n,r);return o.accumulateTwoPhaseDispatches(C),C}};t.exports=R},{"./EventConstants":17,"./EventPluginUtils":21,"./EventPropagators":22,"./SyntheticClipboardEvent":93,"./SyntheticDragEvent":95,"./SyntheticEvent":96,"./SyntheticFocusEvent":97,"./SyntheticKeyboardEvent":99,"./SyntheticMouseEvent":100,"./SyntheticTouchEvent":101,"./SyntheticUIEvent":102,"./SyntheticWheelEvent":103,"./getEventCharCode":125,"./invariant":137,"./keyOf":144,"./warning":155}],93:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":96}],94:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={data:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":96}],95:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticMouseEvent"),o={dataTransfer:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticMouseEvent":100}],96:[function(e,t){"use strict";function n(e,t,n){this.dispatchConfig=e,this.dispatchMarker=t,this.nativeEvent=n;var r=this.constructor.Interface;for(var o in r)if(r.hasOwnProperty(o)){var a=r[o];this[o]=a?a(n):n[o]}var s=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;this.isDefaultPrevented=s?i.thatReturnsTrue:i.thatReturnsFalse,this.isPropagationStopped=i.thatReturnsFalse}var r=e("./PooledClass"),o=e("./Object.assign"),i=e("./emptyFunction"),a=e("./getEventTarget"),s={type:null,target:a,currentTarget:i.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};o(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e.preventDefault?e.preventDefault():e.returnValue=!1,this.isDefaultPrevented=i.thatReturnsTrue},stopPropagation:function(){var e=this.nativeEvent;e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this.isPropagationStopped=i.thatReturnsTrue},persist:function(){this.isPersistent=i.thatReturnsTrue},isPersistent:i.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;this.dispatchConfig=null,this.dispatchMarker=null,this.nativeEvent=null}}),n.Interface=s,n.augmentClass=function(e,t){var n=this,i=Object.create(n.prototype);o(i,e.prototype),e.prototype=i,e.prototype.constructor=e,e.Interface=o({},n.Interface,t),e.augmentClass=n.augmentClass,r.addPoolingTo(e,r.threeArgumentPooler)},r.addPoolingTo(n,r.threeArgumentPooler),t.exports=n},{"./Object.assign":29,"./PooledClass":30,"./emptyFunction":118,"./getEventTarget":128}],97:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o={relatedTarget:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticUIEvent":102}],98:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={data:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":96}],99:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./getEventCharCode"),i=e("./getEventKey"),a=e("./getEventModifierState"),s={key:i,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:a,charCode:function(e){return"keypress"===e.type?o(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?o(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};r.augmentClass(n,s),t.exports=n},{"./SyntheticUIEvent":102,"./getEventCharCode":125,"./getEventKey":126,"./getEventModifierState":127}],100:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./ViewportMetrics"),i=e("./getEventModifierState"),a={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:i,button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+o.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+o.currentScrollTop}};r.augmentClass(n,a),t.exports=n},{"./SyntheticUIEvent":102,"./ViewportMetrics":105,"./getEventModifierState":127}],101:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./getEventModifierState"),i={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:o};r.augmentClass(n,i),t.exports=n},{"./SyntheticUIEvent":102,"./getEventModifierState":127}],102:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o=e("./getEventTarget"),i={view:function(e){if(e.view)return e.view;var t=o(e);if(null!=t&&t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};r.augmentClass(n,i),t.exports=n},{"./SyntheticEvent":96,"./getEventTarget":128}],103:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticMouseEvent"),o={deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticMouseEvent":100}],104:[function(e,t){"use strict";var n=e("./invariant"),r={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,r,o,i,a,s,u){n(!this.isInTransaction());var c,l;try{this._isInTransaction=!0,c=!0,this.initializeAll(0),l=e.call(t,r,o,i,a,s,u),c=!1}finally{try{if(c)try{this.closeAll(0)}catch(p){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return l},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=o.OBSERVED_ERROR,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o.OBSERVED_ERROR)try{this.initializeAll(n+1)}catch(i){}}}},closeAll:function(e){n(this.isInTransaction());for(var t=this.transactionWrappers,r=e;r<t.length;r++){var i,a=t[r],s=this.wrapperInitData[r];try{i=!0,s!==o.OBSERVED_ERROR&&a.close&&a.close.call(this,s),i=!1}finally{if(i)try{this.closeAll(r+1)}catch(u){}}}this.wrapperInitData.length=0}},o={Mixin:r,OBSERVED_ERROR:{}};t.exports=o},{"./invariant":137}],105:[function(e,t){"use strict";var n=e("./getUnboundedScrollPosition"),r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(){var e=n(window);r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};t.exports=r},{"./getUnboundedScrollPosition":133}],106:[function(e,t){"use strict";function n(e,t){if(r(null!=t),null==e)return t;var n=Array.isArray(e),o=Array.isArray(t);return n&&o?(e.push.apply(e,t),e):n?(e.push(t),e):o?[e].concat(t):[e,t]}var r=e("./invariant");t.exports=n},{"./invariant":137}],107:[function(e,t){"use strict";function n(e){for(var t=1,n=0,o=0;o<e.length;o++)t=(t+e.charCodeAt(o))%r,n=(n+t)%r;return t|n<<16}var r=65521;t.exports=n},{}],108:[function(e,t){function n(e){return e.replace(r,function(e,t){return t.toUpperCase()})}var r=/-(.)/g;t.exports=n},{}],109:[function(e,t){"use strict";function n(e){return r(e.replace(o,"ms-"))}var r=e("./camelize"),o=/^-ms-/;t.exports=n},{"./camelize":108}],110:[function(e,t){"use strict";function n(e,t){var n=o.mergeProps(t,e.props);return!n.hasOwnProperty(a)&&e.props.hasOwnProperty(a)&&(n.children=e.props.children),r.createElement(e.type,n)}var r=e("./ReactElement"),o=e("./ReactPropTransferer"),i=e("./keyOf"),a=(e("./warning"),i({children:null}));t.exports=n},{"./ReactElement":56,"./ReactPropTransferer":74,"./keyOf":144,"./warning":155}],111:[function(e,t){function n(e,t){return e&&t?e===t?!0:r(e)?!1:r(t)?n(e,t.parentNode):e.contains?e.contains(t):e.compareDocumentPosition?!!(16&e.compareDocumentPosition(t)):!1:!1}var r=e("./isTextNode");t.exports=n},{"./isTextNode":141}],112:[function(e,t){function n(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}function r(e){return n(e)?Array.isArray(e)?e.slice():o(e):[e]}var o=e("./toArray");t.exports=r},{"./toArray":152}],113:[function(e,t){"use strict";function n(e){var t=o.createFactory(e),n=r.createClass({displayName:"ReactFullPageComponent"+e,componentWillUnmount:function(){i(!1)},render:function(){return t(this.props)}});return n}var r=e("./ReactCompositeComponent"),o=e("./ReactElement"),i=e("./invariant");t.exports=n},{"./ReactCompositeComponent":40,"./ReactElement":56,"./invariant":137}],114:[function(e,t){function n(e){var t=e.match(c);return t&&t[1].toLowerCase()}function r(e,t){var r=u;s(!!u);var o=n(e),c=o&&a(o);if(c){r.innerHTML=c[1]+e+c[2];for(var l=c[0];l--;)r=r.lastChild}else r.innerHTML=e;var p=r.getElementsByTagName("script");p.length&&(s(t),i(p).forEach(t));for(var d=i(r.childNodes);r.lastChild;)r.removeChild(r.lastChild);return d}var o=e("./ExecutionEnvironment"),i=e("./createArrayFrom"),a=e("./getMarkupWrap"),s=e("./invariant"),u=o.canUseDOM?document.createElement("div"):null,c=/^\s*<(\w+)/;t.exports=r},{"./ExecutionEnvironment":23,"./createArrayFrom":112,"./getMarkupWrap":129,"./invariant":137}],115:[function(e,t){function n(e){return"object"==typeof e?Object.keys(e).filter(function(t){return e[t]}).join(" "):Array.prototype.join.call(arguments," ")}t.exports=n},{}],116:[function(e,t){"use strict";function n(e,t){var n=null==t||"boolean"==typeof t||""===t;if(n)return"";var r=isNaN(t);return r||0===t||o.hasOwnProperty(e)&&o[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}var r=e("./CSSProperty"),o=r.isUnitlessNumber;t.exports=n},{"./CSSProperty":5}],117:[function(e,t){function n(e,t,n,r,o){return o
     16}e("./Object.assign"),e("./warning");t.exports=n},{"./Object.assign":29,"./warning":155}],118:[function(e,t){function n(e){return function(){return e}}function r(){}r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},t.exports=r},{}],119:[function(e,t){"use strict";var n={};t.exports=n},{}],120:[function(e,t){"use strict";function n(e){return o[e]}function r(e){return(""+e).replace(i,n)}var o={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},i=/[&><"']/g;t.exports=r},{}],121:[function(e,t){"use strict";function n(e,t,n){var r=e,i=!r.hasOwnProperty(n);if(i&&null!=t){var a,s=typeof t;a="string"===s?o(t):"number"===s?o(""+t):t,r[n]=a}}function r(e){if(null==e)return e;var t={};return i(e,n,t),t}{var o=e("./ReactTextComponent"),i=e("./traverseAllChildren");e("./warning")}t.exports=r},{"./ReactTextComponent":84,"./traverseAllChildren":153,"./warning":155}],122:[function(e,t){"use strict";function n(e){try{e.focus()}catch(t){}}t.exports=n},{}],123:[function(e,t){"use strict";var n=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};t.exports=n},{}],124:[function(e,t){function n(){try{return document.activeElement||document.body}catch(e){return document.body}}t.exports=n},{}],125:[function(e,t){"use strict";function n(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}t.exports=n},{}],126:[function(e,t){"use strict";function n(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=r(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}var r=e("./getEventCharCode"),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=n},{"./getEventCharCode":125}],127:[function(e,t){"use strict";function n(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=o[e];return r?!!n[r]:!1}function r(){return n}var o={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=r},{}],128:[function(e,t){"use strict";function n(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}t.exports=n},{}],129:[function(e,t){function n(e){return o(!!i),p.hasOwnProperty(e)||(e="*"),a.hasOwnProperty(e)||(i.innerHTML="*"===e?"<link />":"<"+e+"></"+e+">",a[e]=!i.firstChild),a[e]?p[e]:null}var r=e("./ExecutionEnvironment"),o=e("./invariant"),i=r.canUseDOM?document.createElement("div"):null,a={circle:!0,defs:!0,ellipse:!0,g:!0,line:!0,linearGradient:!0,path:!0,polygon:!0,polyline:!0,radialGradient:!0,rect:!0,stop:!0,text:!0},s=[1,'<select multiple="true">',"</select>"],u=[1,"<table>","</table>"],c=[3,"<table><tbody><tr>","</tr></tbody></table>"],l=[1,"<svg>","</svg>"],p={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:s,option:s,caption:u,colgroup:u,tbody:u,tfoot:u,thead:u,td:c,th:c,circle:l,defs:l,ellipse:l,g:l,line:l,linearGradient:l,path:l,polygon:l,polyline:l,radialGradient:l,rect:l,stop:l,text:l};t.exports=n},{"./ExecutionEnvironment":23,"./invariant":137}],130:[function(e,t){"use strict";function n(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function r(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function o(e,t){for(var o=n(e),i=0,a=0;o;){if(3==o.nodeType){if(a=i+o.textContent.length,t>=i&&a>=t)return{node:o,offset:t-i};i=a}o=n(r(o))}}t.exports=o},{}],131:[function(e,t){"use strict";function n(e){return e?e.nodeType===r?e.documentElement:e.firstChild:null}var r=9;t.exports=n},{}],132:[function(e,t){"use strict";function n(){return!o&&r.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}var r=e("./ExecutionEnvironment"),o=null;t.exports=n},{"./ExecutionEnvironment":23}],133:[function(e,t){"use strict";function n(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=n},{}],134:[function(e,t){function n(e){return e.replace(r,"-$1").toLowerCase()}var r=/([A-Z])/g;t.exports=n},{}],135:[function(e,t){"use strict";function n(e){return r(e).replace(o,"-ms-")}var r=e("./hyphenate"),o=/^ms-/;t.exports=n},{"./hyphenate":134}],136:[function(e,t){"use strict";function n(e,t){var n;return n="string"==typeof e.type?r.createInstanceForTag(e.type,e.props,t):new e.type(e.props),n.construct(e),n}{var r=(e("./warning"),e("./ReactElement"),e("./ReactLegacyElement"),e("./ReactNativeComponent"));e("./ReactEmptyComponent")}t.exports=n},{"./ReactElement":56,"./ReactEmptyComponent":58,"./ReactLegacyElement":65,"./ReactNativeComponent":71,"./warning":155}],137:[function(e,t){"use strict";var n=function(e,t,n,r,o,i,a,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],l=0;u=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return c[l++]}))}throw u.framesToPop=1,u}};t.exports=n},{}],138:[function(e,t){"use strict";function n(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,i=n in document;if(!i){var a=document.createElement("div");a.setAttribute(n,"return;"),i="function"==typeof a[n]}return!i&&r&&"wheel"===e&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}var r,o=e("./ExecutionEnvironment");o.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=n},{"./ExecutionEnvironment":23}],139:[function(e,t){function n(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=n},{}],140:[function(e,t){"use strict";function n(e){return e&&("INPUT"===e.nodeName&&r[e.type]||"TEXTAREA"===e.nodeName)}var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=n},{}],141:[function(e,t){function n(e){return r(e)&&3==e.nodeType}var r=e("./isNode");t.exports=n},{"./isNode":139}],142:[function(e,t){"use strict";function n(e){e||(e="");var t,n=arguments.length;if(n>1)for(var r=1;n>r;r++)t=arguments[r],t&&(e=(e?e+" ":"")+t);return e}t.exports=n},{}],143:[function(e,t){"use strict";var n=e("./invariant"),r=function(e){var t,r={};n(e instanceof Object&&!Array.isArray(e));for(t in e)e.hasOwnProperty(t)&&(r[t]=t);return r};t.exports=r},{"./invariant":137}],144:[function(e,t){var n=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};t.exports=n},{}],145:[function(e,t){"use strict";function n(e,t,n){if(!e)return null;var o={};for(var i in e)r.call(e,i)&&(o[i]=t.call(n,e[i],i,e));return o}var r=Object.prototype.hasOwnProperty;t.exports=n},{}],146:[function(e,t){"use strict";function n(e){var t={};return function(n){return t.hasOwnProperty(n)?t[n]:t[n]=e.call(this,n)}}t.exports=n},{}],147:[function(e,t){"use strict";function n(e){r(e&&!/[^a-z0-9_]/.test(e))}var r=e("./invariant");t.exports=n},{"./invariant":137}],148:[function(e,t){"use strict";function n(e){return o(r.isValidElement(e)),e}var r=e("./ReactElement"),o=e("./invariant");t.exports=n},{"./ReactElement":56,"./invariant":137}],149:[function(e,t){"use strict";var n=e("./ExecutionEnvironment"),r=/^[ \r\n\t\f]/,o=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,i=function(e,t){e.innerHTML=t};if(n.canUseDOM){var a=document.createElement("div");a.innerHTML=" ",""===a.innerHTML&&(i=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),r.test(t)||"<"===t[0]&&o.test(t)){e.innerHTML=""+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}t.exports=i},{"./ExecutionEnvironment":23}],150:[function(e,t){"use strict";function n(e,t){if(e===t)return!0;var n;for(n in e)if(e.hasOwnProperty(n)&&(!t.hasOwnProperty(n)||e[n]!==t[n]))return!1;for(n in t)if(t.hasOwnProperty(n)&&!e.hasOwnProperty(n))return!1;return!0}t.exports=n},{}],151:[function(e,t){"use strict";function n(e,t){return e&&t&&e.type===t.type&&e.key===t.key&&e._owner===t._owner?!0:!1}t.exports=n},{}],152:[function(e,t){function n(e){var t=e.length;if(r(!Array.isArray(e)&&("object"==typeof e||"function"==typeof e)),r("number"==typeof t),r(0===t||t-1 in e),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(n){}for(var o=Array(t),i=0;t>i;i++)o[i]=e[i];return o}var r=e("./invariant");t.exports=n},{"./invariant":137}],153:[function(e,t){"use strict";function n(e){return d[e]}function r(e,t){return e&&null!=e.key?i(e.key):t.toString(36)}function o(e){return(""+e).replace(f,n)}function i(e){return"$"+o(e)}function a(e,t,n){return null==e?0:h(e,"",0,t,n)}var s=e("./ReactElement"),u=e("./ReactInstanceHandles"),c=e("./invariant"),l=u.SEPARATOR,p=":",d={"=":"=0",".":"=1",":":"=2"},f=/[=.:]/g,h=function(e,t,n,o,a){var u,d,f=0;if(Array.isArray(e))for(var m=0;m<e.length;m++){var v=e[m];u=t+(t?p:l)+r(v,m),d=n+f,f+=h(v,u,d,o,a)}else{var y=typeof e,g=""===t,E=g?l+r(e,0):t;if(null==e||"boolean"===y)o(a,null,E,n),f=1;else if("string"===y||"number"===y||s.isValidElement(e))o(a,e,E,n),f=1;else if("object"===y){c(!e||1!==e.nodeType);for(var C in e)e.hasOwnProperty(C)&&(u=t+(t?p:l)+i(C)+p+r(e[C],0),d=n+f,f+=h(e[C],u,d,o,a))}}return f};t.exports=a},{"./ReactElement":56,"./ReactInstanceHandles":64,"./invariant":137}],154:[function(e,t){"use strict";function n(e){return Array.isArray(e)?e.concat():e&&"object"==typeof e?i(new e.constructor,e):e}function r(e,t,n){s(Array.isArray(e));var r=t[n];s(Array.isArray(r))}function o(e,t){if(s("object"==typeof t),t.hasOwnProperty(p))return s(1===Object.keys(t).length),t[p];var a=n(e);if(t.hasOwnProperty(d)){var h=t[d];s(h&&"object"==typeof h),s(a&&"object"==typeof a),i(a,t[d])}t.hasOwnProperty(u)&&(r(e,t,u),t[u].forEach(function(e){a.push(e)})),t.hasOwnProperty(c)&&(r(e,t,c),t[c].forEach(function(e){a.unshift(e)})),t.hasOwnProperty(l)&&(s(Array.isArray(e)),s(Array.isArray(t[l])),t[l].forEach(function(e){s(Array.isArray(e)),a.splice.apply(a,e)})),t.hasOwnProperty(f)&&(s("function"==typeof t[f]),a=t[f](a));for(var v in t)m.hasOwnProperty(v)&&m[v]||(a[v]=o(e[v],t[v]));return a}var i=e("./Object.assign"),a=e("./keyOf"),s=e("./invariant"),u=a({$push:null}),c=a({$unshift:null}),l=a({$splice:null}),p=a({$set:null}),d=a({$merge:null}),f=a({$apply:null}),h=[u,c,l,p,d,f],m={};h.forEach(function(e){m[e]=!0}),t.exports=o},{"./Object.assign":29,"./invariant":137,"./keyOf":144}],155:[function(e,t){"use strict";var n=e("./emptyFunction"),r=n;t.exports=r},{"./emptyFunction":118}]},{},[1])(1)});
  • SRUAggregator/trunk/src/test/java/eu/clarin/sru/fcs/aggregator/app/ScanCrawlerTest.java

    r5758 r5771  
    33import eu.clarin.sru.client.SRUThreadedClient;
    44import eu.clarin.sru.client.fcs.ClarinFCSClientBuilder;
     5import eu.clarin.sru.fcs.aggregator.cache.Corpora;
    56import eu.clarin.sru.fcs.aggregator.cache.EndpointUrlFilter;
    6 import eu.clarin.sru.fcs.aggregator.cache.ScanCache;
    77import eu.clarin.sru.fcs.aggregator.cache.ScanCrawler;
     8import eu.clarin.sru.fcs.aggregator.registry.CenterRegistry;
    89import eu.clarin.sru.fcs.aggregator.registry.CenterRegistryLive;
    910import eu.clarin.sru.fcs.aggregator.registry.Corpus;
    1011import java.util.HashSet;
    1112import java.util.Set;
     13import javax.naming.InitialContext;
     14import javax.naming.NamingException;
    1215import org.junit.Assert;
    1316import org.junit.Ignore;
     
    2225
    2326        @Test
    24         public void testCrawlForMpiAndTue() {
     27        public void testCrawlForMpiAndTue() throws NamingException {
    2528
    2629                SRUThreadedClient sruClient = new ClarinFCSClientBuilder()
     
    3134                        EndpointUrlFilter filter = new EndpointUrlFilter()
    3235                                        .allow("uni-tuebingen.de"); //, "leipzig", ".mpi.nl", "dspin.dwds.de", "lindat."
    33                         ScanCrawler crawler = new ScanCrawler(new CenterRegistryLive(), sruClient, filter, 2);
    34                         ScanCache cache = crawler.crawl();
    35                         Corpus tueRootCorpus = cache.getRootCorporaOfEndpoint("http://weblicht.sfs.uni-tuebingen.de/rws/sru/").get(0);
    36                         Corpus mpiRootCorpus = cache.getRootCorporaOfEndpoint("http://cqlservlet.mpi.nl/").get(0);
     36
     37                        InitialContext context = new InitialContext();
     38                        String centerRegistryUrl = (String) context.lookup("java:comp/env/center-registry-url");
     39                        CenterRegistry centerRegistry = new CenterRegistryLive(centerRegistryUrl);
     40                        ScanCrawler crawler = new ScanCrawler(centerRegistry, sruClient, filter, 2);
     41                        Corpora cache = crawler.crawl();
     42                        Corpus tueRootCorpus = cache.findByEndpoint("http://weblicht.sfs.uni-tuebingen.de/rws/sru/").get(0);
     43                        Corpus mpiRootCorpus = cache.findByEndpoint("http://cqlservlet.mpi.nl/").get(0);
    3744                        Assert.assertEquals("http://hdl.handle.net/11858/00-1778-0000-0001-DDAF-D",
    3845                                        tueRootCorpus.getHandle());
    39                         Corpus mpiCorpus = cache.getCorpus("hdl:1839/00-0000-0000-0001-53A5-2@format=cmdi");
    40                         Assert.assertEquals("hdl:1839/00-0000-0000-0003-4692-D@format=cmdi", cache.getChildren(mpiCorpus).get(0).getHandle());
     46                        Corpus mpiCorpus = cache.findByHandle("hdl:1839/00-0000-0000-0001-53A5-2@format=cmdi");
     47                        Assert.assertEquals("hdl:1839/00-0000-0000-0003-4692-D@format=cmdi", mpiCorpus.getSubCorpora().get(0).getHandle());
    4148                        //check if languages and other corpus data is crawled corectly...
    4249                        Set<String> tueLangs = new HashSet<>();
Note: See TracChangeset for help on using the changeset viewer.