text:
using System;
using UnityEngine;

namespace CodeEditor.Logging.Unity
{
	public class UnityLogger : ILogger
	{
		public void Log(object value)
		{
			Debug.Log(value);
		}

		public void LogError(Exception exception)
		{
			Debug.LogException(exception);
		}
	}
}


text:
package edu.uci.ics.fuzzyjoin.hadoop;

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

import org.apache.hadoop.io.WritableComparable;
import org.apache.hadoop.io.WritableComparator;

public class IntTripleWritable implements WritableComparable {
    /** A Comparator optimized for IntTripleWritable. */
    public static class Comparator extends WritableComparator {
        public Comparator() {
            super(IntTripleWritable.class);
        }

        @Override
        public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) {
            int c = WritableComparator.compareBytes(b1, s1, 4, b2, s2, 4);
            if (c != 0) {
                return c;
            }
            c = WritableComparator.compareBytes(b1, s1 + 4, 4, b2, s2 + 4, 4);
            if (c != 0) {
                return c;
            }
            return WritableComparator
                    .compareBytes(b1, s1 + 8, 4, b2, s2 + 8, 4);
        }
    }

    static { // register this comparator
        WritableComparator.define(IntTripleWritable.class, new Comparator());
    }

    private int first;

    private int second;

    private int third;

    public int compareTo(Object o) {
        if (this == o) {
            return 0;
        }
        IntTripleWritable p = (IntTripleWritable) o;
        if (first != p.first) {
            return first < p.first ? -1 : 1;
        }
        if (second != p.second) {
            return second < p.second ? -1 : 1;
        }
        return third < p.third ? -1 : third > p.third ? 1 : 0;
    }

    public int getFirst() {
        return first;
    }

    public int getSecond() {
        return second;
    }

    public int getThird() {
        return third;
    }

    @Override
    public int hashCode() {
        return first * IntPairWritable.PRIME[0] + second
                * IntPairWritable.PRIME[1] + third;
    }

    public void readFields(DataInput in) throws IOException {
        first = in.readInt();
        second = in.readInt();
        third = in.readInt();
    }

    public void set(int first, int second, int third) {
        this.first = first;
        this.second = second;
        this.third = third;
    }

    public void setFirst(int first) {
        this.first = first;
    }

    public void setSecond(int second) {
        this.second = second;
    }

    public void setThird(int third) {
        this.third = third;
    }

    @Override
    public String toString() {
        return "(" + first + "," + second + "," + third + ")";
    }

    public void write(DataOutput out) throws IOException {
        out.writeInt(first);
        out.writeInt(second);
        out.writeInt(third);
    }
}

redpajama_set_name: RedPajamaGithub


text:
<?php

 /**
   *
   */
require_once(__CA_LIB_DIR__.'/core/BaseRelationshipModel.php');

BaseModel::$s_ca_models_definitions['ca_search_forms_x_user_groups'] = array(
 	'NAME_SINGULAR' 	=> _t('search forms ⇔ group association'),
 	'NAME_PLURAL' 		=> _t('search forms ⇔ group associations'),
 	'FIELDS' 			=> array(
		'relation_id' => array(
				'FIELD_TYPE' => FT_NUMBER, 'DISPLAY_TYPE' => DT_HIDDEN,
				'IDENTITY' => true, 'DISPLAY_WIDTH' => 10, 'DISPLAY_HEIGHT' => 1,
				'IS_NULL' => false,
				'DEFAULT' => '',
				'LABEL' => 'Relation id', 'DESCRIPTION' => 'Identifier for Relation'
		),
		'form_id' => array(
				'FIELD_TYPE' => FT_NUMBER, 'DISPLAY_TYPE' => DT_FIELD,
				'DISPLAY_WIDTH' => 10, 'DISPLAY_HEIGHT' => 1,
				'IS_NULL' => false,
				'DEFAULT' => '',
				'LABEL' => 'Search form id', 'DESCRIPTION' => 'Identifier for search form'
		),
		'group_id' => array(
				'FIELD_TYPE' => FT_NUMBER, 'DISPLAY_TYPE' => DT_FIELD,
				'DISPLAY_WIDTH' => 10, 'DISPLAY_HEIGHT' => 1,
				'IS_NULL' => false,
				'DEFAULT' => '',
				'LABEL' => 'Group id', 'DESCRIPTION' => 'Identifier for Group'
		),
		'access' => array(
				'FIELD_TYPE' => FT_NUMBER, 'DISPLAY_TYPE' => DT_SELECT,
				'DISPLAY_WIDTH' => 40, 'DISPLAY_HEIGHT' => 1,
				'IS_NULL' => false,
				'DEFAULT' => 0,
				'BOUNDS_CHOICE_LIST' => array(
					_t('has no access') => 0,
					_t('can read') => 1,
					_t('can edit') => 2
				),
				'LABEL' => _t('Access'), 'DESCRIPTION' => _t('Indicates group's level of access to the form. ')
		)
	)
);

class ca_search_forms_x_user_groups extends BaseRelationshipModel {
	# ---------------------------------
	# --- Object attribute properties
	# ---------------------------------
	# Describe structure of content object's properties - eg. database fields and their
	# associated types, what modes are supported, et al.
	#

	# ------------------------------------------------------
	# --- Basic object parameters
	# ------------------------------------------------------
	# what table does this class represent?
	protected $TABLE = 'ca_search_forms_x_user_groups';

	# what is the primary key of the table?
	protected $PRIMARY_KEY = 'relation_id';

	# ------------------------------------------------------
	# --- Properties used by standard editing scripts
	#
	# These class properties allow generic scripts to properly display
	# records from the table represented by this class
	#
	# ------------------------------------------------------

	# Array of fields to display in a listing of records from this table
	protected $LIST_FIELDS = array('relation_id');

	# When the list of "list fields" above contains more than one field,
	# the LIST_DELIMITER text is displayed between fields as a delimiter.
	# This is typically a comma or space, but can be any string you like
	protected $LIST_DELIMITER = ' ';

	# What you'd call a single record from this table (eg. a "person")
	protected $NAME_SINGULAR;

	# What you'd call more than one record from this table (eg. "people")
	protected $NAME_PLURAL;

	# List of fields to sort listing of records by; you can use
	# SQL 'ASC' and 'DESC' here if you like.
	protected $ORDER_BY = array('relation_id');

	# If you want to order records arbitrarily, add a numeric field to the table and place
	# its name here. The generic list scripts can then use it to order table records.
	protected $RANK = '';

	# ------------------------------------------------------
	# Hierarchical table properties
	# ------------------------------------------------------
	protected $HIERARCHY_TYPE				=	null;
	protected $HIERARCHY_LEFT_INDEX_FLD 	= 	null;
	protected $HIERARCHY_RIGHT_INDEX_FLD 	= 	null;
	protected $HIERARCHY_PARENT_ID_FLD		=	null;
	protected $HIERARCHY_DEFINITION_TABLE	=	null;
	protected $HIERARCHY_ID_FLD				=	null;
	protected $HIERARCHY_POLY_TABLE			=	null;

	# ------------------------------------------------------
	# Change logging
	# ------------------------------------------------------
	protected $UNIT_ID_FIELD = null;
	protected $LOG_CHANGES_TO_SELF = false;
	protected $LOG_CHANGES_USING_AS_SUBJECT = array(
		"FOREIGN_KEYS" => array(
			"form_id"
		),
		"RELATED_TABLES" => array(

		)
	);

	# ------------------------------------------------------
	# --- Relationship info
	# ------------------------------------------------------
	protected $RELATIONSHIP_LEFT_TABLENAME = 'ca_bundle_displays';
	protected $RELATIONSHIP_RIGHT_TABLENAME = 'ca_user_groups';
	protected $RELATIONSHIP_LEFT_FIELDNAME = 'display_id';
	protected $RELATIONSHIP_RIGHT_FIELDNAME = 'group_id';
	protected $RELATIONSHIP_TYPE_FIELDNAME = null;

	# ------------------------------------------------------
	# $FIELDS contains information about each field in the table. The order in which the fields
	# are listed here is the order in which they will be returned using getFields()

	protected $FIELDS;

	# ----------------------------------------
	function __construct($pn_id=null) {
		parent::__construct($pn_id);
	}
	# ----------------------------------------
}
?>


text:
package try

import "reflect"

var errSample = reflect.TypeOf((*error)(nil)).Elem()

// Interface is the catch interface
type Interface interface {
	// Catch accept a function and call it if its matched with the signature
	Catch(f interface{}) Interface
	// Error return the final error in system. if a catcher change it to new function the
	// result is new error not the first err
	Error() error
}

// Block is the main structure for this package
type block struct {
	err error
}

func (b *block) match(err error, t reflect.Type) bool {
	return reflect.TypeOf(err).AssignableTo(t.In(0))
}

func (b *block) call(err error, v reflect.Value) error {
	args := []reflect.Value{reflect.ValueOf(err)}
	res := v.Call(args)
	if res[0].IsNil() {
		return nil
	}

	return res[0].Interface().(error)
}

func (b *block) validate(fnType reflect.Type) {
	if fnType.Kind() != reflect.Func {
		panic("must be a func")
	}

	if fnType.NumIn() != 1 || !fnType.In(0).Implements(errSample) {
		panic("must get exactly one argument and argument must implement error interface")
	}

	if fnType.NumOut() != 1 || !fnType.Out(0).Implements(errSample) {
		panic("must have exactly one result and result must implement error interface")
	}
}

// Catch register a catch block
func (b *block) Catch(f interface{}) Interface {
	if b.err != nil {
		fnType := reflect.TypeOf(f)
		b.validate(fnType)
		if b.match(b.err, fnType) {
			b.err = b.call(b.err, reflect.ValueOf(f))
		}
	}
	return b
}

func (b *block) Error() error {
	return b.err
}

// New create new block
func New(err error) Interface {
	return &block{err: err}
}


text:
package com.orgsync.api;

import static com.orgsync.api.Util.checkNotNull;
import static com.orgsync.api.Util.joinList;

import java.util.List;

import com.ning.http.client.FluentStringsMap;
import com.ning.http.client.ListenableFuture;
import com.orgsync.api.model.Success;
import com.orgsync.api.model.accounts.Account;
import com.orgsync.api.model.orgs.Org;
import com.orgsync.api.model.orgs.OrgFull;
import com.orgsync.api.model.orgs.OrgUpdateRequest;

/**
 * The implementation of the orgs endpoint.
 *
 * @author steffyj
 *
 */
/* package */class OrgsResourceImpl extends BaseResource implements OrgsResource {

    /* package */OrgsResourceImpl(final ApiClientImpl client) {
        super(client, "/orgs");
    }

    @Override
    public ListenableFuture<ApiResponse<List<Org>>> getOrgs() {
        return list(Org.LIST_TYPE);
    }

    @Override
    public ListenableFuture<ApiResponse<OrgFull>> getOrg(final int orgId) {
        return show(orgId, OrgFull.TYPE);
    }

    @Override
    public ListenableFuture<ApiResponse<OrgFull>> updateOrg(final int orgId, final OrgUpdateRequest request) {
        checkNotNull(request);

        FluentStringsMap params = new FluentStringsMap();

        checkAddField(params, "alternate_id", request.getAlternateId());
        checkAddField(params, "short_name", request.getShortName());
        checkAddField(params, "is_disabled", request.getIsDisabled());
        addProfileFields(params, request.getProfileResponses());

        return update(orgId, params, OrgFull.TYPE);
    }

    @Override
    public ListenableFuture<ApiResponse<List<Account>>> listAccounts(final int orgId) {
        String endpoint = showFor(orgId) + "/accounts";
        return getResponse(RequestParams.get(endpoint), Account.LIST_TYPE);
    }

    @Override
    public ListenableFuture<ApiResponse<Success>> addAccounts(final int orgId, final List<Integer> accountIds) {
        checkNotNull(accountIds);

        FluentStringsMap params = new FluentStringsMap().add("ids", joinList(accountIds, ","));
        return getResponse(RequestParams.post(showFor(orgId) + "/accounts/add", params), Success.TYPE);
    }

    @Override
    public ListenableFuture<ApiResponse<Success>> removeAccounts(final int orgId, final List<Integer> accountIds) {
        checkNotNull(accountIds);

        FluentStringsMap params = new FluentStringsMap().add("ids", joinList(accountIds, ","));
        return getResponse(RequestParams.post(showFor(orgId) + "/accounts/remove", params), Success.TYPE);
    }

}


text:
<meta http-equiv="Content-Security-Policy" content="sandbox allow-scripts">
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
test(function () {
    assert_throws('SecurityError', function () {
        history.pushState(null, null, document.URL);
    });
}, 'pushState at unique origin should fail with SecurityError');
</script>


text:
@interface FFIWrapper: NSObject

+ (NSString *)drawGoalWithWidth:(CGFloat)width
                         height:(CGFloat)height
                       progress:(CGFloat)progress;

@end


text:
<?php

namespace App\Entities;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasOne;

class Link extends Model
{
    /**
     * The attributes that are allowed for mass assignment.
     * @var array
     */
    protected $fillable = ['published_at'];

    /**
     * The attributes that should be mutated to dates.
     * @var array
     */
    protected $dates = [
        'created_at',
        'updated_at',
        'published_at'
    ];

    /**
     * A link has one link detail.
     * @return HasOne
     */
    public function details(): HasOne
    {
        return $this->hasOne(
            LinkDetails::class
        );
    }

    /**
     * A link has one fully qualified domain name.
     * @return HasOne
     */
    public function fqdn(): HasOne
    {
        return $this->hasOne(
            LinkFqdn::class
        );
    }

    /**
     * A link can belong to many labels.
     * @return BelongsToMany
     */
    public function labels(): BelongsToMany
    {
        return $this->belongsToMany(
            Label::class
        );
    }
}


text:
package govcr

import (
	"net/http"
	"net/url"

	"github.com/seborama/govcr/v13/cassette/track"
)

// RequestMatcher is a function that performs request comparison.
// request comparison involves the HTTP request and the track request recorded on cassette.
type RequestMatcher func(httpRequest, trackRequest *track.Request) bool

// RequestMatchers is a collection of RequestMatcher's.
type RequestMatchers []RequestMatcher

// Add a set of RequestMatcher's to this RequestMatchers collection.
func (rm RequestMatchers) Add(reqMatchers ...RequestMatcher) RequestMatchers {
	return append(rm, reqMatchers...)
}

// Match returns true if all RequestMatcher's in RequestMatchers return true, thereby indicating that
// the trackRequest matches the httpRequest.
// When no matchers are supplied, Match returns false.
func (rm RequestMatchers) Match(httpRequest, trackRequest *track.Request) bool {
	for _, matcher := range rm {
		if !matcher(httpRequest, trackRequest) {
			return false
		}
	}

	return len(rm) != 0
}

// NewStrictRequestMatchers creates a new default sets of RequestMatcher's.
func NewStrictRequestMatchers() RequestMatchers {
	return RequestMatchers{
		DefaultHeaderMatcher,
		DefaultMethodMatcher,
		DefaultURLMatcher,
		DefaultBodyMatcher,
		DefaultTrailerMatcher,
	}
}

// NewMethodURLRequestMatchers creates a new default set of RequestMatcher's based on Method and URL.
func NewMethodURLRequestMatchers() RequestMatchers {
	return RequestMatchers{
		DefaultMethodMatcher,
		DefaultURLMatcher,
	}
}

// DefaultHeaderMatcher is the default implementation of HeaderMatcher.
func DefaultHeaderMatcher(httpRequest, trackRequest *track.Request) bool {
	return areHTTPHeadersEqual(httpRequest.Header, trackRequest.Header)
}

// DefaultMethodMatcher is the default implementation of MethodMatcher.
func DefaultMethodMatcher(httpRequest, trackRequest *track.Request) bool {
	return httpRequest.Method == trackRequest.Method
}

// DefaultURLMatcher is the default implementation of URLMatcher.
// nolint: gocyclo,gocognit
func DefaultURLMatcher(httpRequest, trackRequest *track.Request) bool {
	httpURL := httpRequest.URL
	if httpURL == nil {
		httpURL = &url.URL{}
	}

	trackURL := trackRequest.URL
	if trackURL == nil {
		trackURL = &url.URL{}
	}

	return httpURL.Scheme == trackURL.Scheme &&
		httpURL.Opaque == trackURL.Opaque &&
		httpURL.User.String() == trackURL.User.String() &&
		httpURL.Host == trackURL.Host &&
		httpURL.Path == trackURL.Path &&
		httpURL.RawPath == trackURL.RawPath &&
		httpURL.ForceQuery == trackURL.ForceQuery &&
		httpURL.RawQuery == trackURL.RawQuery &&
		httpURL.Fragment == trackURL.Fragment
}

// DefaultBodyMatcher is the default implementation of BodyMatcher.
func DefaultBodyMatcher(httpRequest, trackRequest *track.Request) bool {
	return string(httpRequest.Body) == string(trackRequest.Body)
}

// DefaultTrailerMatcher is the default implementation of TrailerMatcher.
func DefaultTrailerMatcher(httpRequest, trackRequest *track.Request) bool {
	return areHTTPHeadersEqual(httpRequest.Trailer, trackRequest.Trailer)
}

// nolint: gocyclo,gocognit
func areHTTPHeadersEqual(httpHeaders1, httpHeaders2 http.Header) bool {
	if len(httpHeaders1) != len(httpHeaders2) {
		return false
	}

	for httpHeaderKey, httpHeaderValues := range httpHeaders1 {
		trackHeaderValues, ok := httpHeaders2[httpHeaderKey]
		if !ok || len(httpHeaderValues) != len(trackHeaderValues) {
			return false
		}

		// "postal" sorting algo
		m := make(map[string]int)

		for _, httpHeaderValue := range httpHeaderValues {
			m[httpHeaderValue]++ // put mail in inbox
		}

		for _, trackHeaderValue := range trackHeaderValues {
			m[trackHeaderValue]-- // pop mail from inbox
		}

		for _, count := range m {
			if count != 0 {
				return false
			}
		}
	}

	return true
}


text:
<?php

namespace Tmdb\Model\Query;

use Tmdb\Model\Collection\QueryParametersCollection;

// @todo
/**
 * Class FindQuery
 * @package Tmdb\Model\Query
 */
class FindQuery extends QueryParametersCollection
{
}


text:
const execSync = require('child_process').execSync
const spawnSync = require('child_process').spawnSync
const exit = require('process').exit
const resolve = require('path').resolve
const fs = require('fs-promise')

const docsPath = resolve('docs')
const docsGit = resolve('docs/.git')

const version = require('./package.json').version
const repository = require('./package.json').repository.url

const executeCommand = (command, args) => {
    const result = spawnSync(command, args, { cwd: docsPath, encoding: 'utf8' })

    if (result.status === 0) {
        console.log(result.stdout)
    } else {
        console.log(result.stderr)
        exit(result.status)
    }
}

fs.removeSync(docsPath)
fs.mkdir(docsPath)
executeCommand('git', ['init'])
executeCommand('git', ['remote', 'add', 'origin', repository + '.git'])
executeCommand('git', ['checkout', '-b', '--orphan', 'gh-pages'])
execSync('npm run docs', {encoding: 'utf8'})
executeCommand('git', ['add', '.'])
executeCommand('git', ['commit', '-m', 'chore(docs): add docs for v' + version + ''])
executeCommand('git', ['push', 'origin', 'gh-pages'])
fs.removeSync(docsGit)


text:
class hospitalPicture : public hospitalMeetingPoint{

private:
    float   mTimeStamp;

    float  mFadeInSec;
    float  mFadeOutSec;

public:

    ofImage mImage;

    void setup(ofImage _image);
    void draw(bool _drawDebug, bool _drawImage);

    void refresh(){mTimeStamp = ofGetElapsedTimef();};
    float getAscTimeRatio();
    float getDescTimeRatio();

    void setFadeIn(float _fadeIn){mFadeInSec = _fadeIn;};
    void setFadeOut(float _fadeOut){mFadeOutSec = _fadeOut;};

};


text:
Starting with Zulip 2.1, Zulip supports importing data from Mattermost,
including users, channels, messages, and custom emoji.

**Note:** You can only import a Mattermost team as a new Zulip
organization. In particular, you cannot use this tool to import data
into an existing Zulip organization.

## Import from Mattermost

First, export your data from Mattermost.
The instructions below correspond to various common ways Mattermost is installed; if
yours isn't covered, [contact us](/help/contact-support) and we'll help you out.

Replace `<username>` and `<server_ip>` with the appropriate values below.

{start_tabs}

{tab|mm-default}

1. SSH into your Mattermost production server.

    ```
    ssh <username>@<server_ip>
    ```

2. Navigate to the directory which contains the Mattermost executable.
   On a default install of Mattermost, the directory is `/opt/mattermost/bin`.

    ```
    cd /opt/mattermost/bin
    ```

3. Create an export of all your Mattermost teams, as a tar file.

    ```
    sudo ./mattermost export bulk export.json --all-teams
    mkdir -p exported_emoji
    tar --transform 's|^|mattermost/|' -czf export.tar.gz \
        exported_emoji/ export.json
    ```

4. Exit your shell on the Mattermost server.

    `exit`

5. Finally, copy the exported tar file from the server to your local
   computer.  You may need to replace `/opt/mattermost/bin/` with the
   path to your Mattermost installation.

    ```
    scp <username>@<server_ip>:/opt/mattermost/bin/export.tar.gz .
    ```

{tab|mm-docker}

1. SSH into the server hosting your Mattermost docker container.

    ```
    ssh <username>@<server_ip>
    ```

2. Navigate to the the Mattermost docker directory. On most installs the
   directory should be `mattermost-docker`.

    ```
    cd mattermost-docker/
    ```

3. Create an export of all your Mattermost teams, as a tar file.

    ```
    docker exec -it mattermost-docker_app_1 mattermost \
        export bulk data/export.json --all-teams
    cd volumes/app/mattermost/data/
    mkdir -p exported_emoji
    tar --transform 's|^|mattermost/|' -czf export.tar.gz \
        exported_emoji/ export.json
    ```

4. Exit your shell on the Mattermost server.

    `exit`

5. Finally, copy the exported tar file from the server to your local
   computer. You may need to replace `mattermost-docker` with the
   appropriate path for your installation.

    ```
    scp <username>@<server_ip>:mattermost-docker/volumes/app/mattermost/data/export.tar.gz .
    ```

{tab|mm-gitlab-omnibus}

1. SSH into your GitLab Omnibus server.

2. Create an export of all your Mattermost teams, as a tar file.

    ```
    cd /opt/gitlab/embedded/service/mattermost
    sudo -u \
        mattermost /opt/gitlab/embedded/bin/mattermost \
        --config=/var/opt/gitlab/mattermost/config.json \
        export bulk export.json --all-teams
    mkdir -p exported_emoji
    tar --transform 's|^|mattermost/|' -czf export.tar.gz \
        exported_emoji/ export.json
    ```

3. Exit your shell on the Gitlab Omnibus server.

    `exit`

4. Finally, copy the exported tar file from GitLab Omnibus to your local computer.

    ```
    scp <username>@<server_ip>:/opt/gitlab/embedded/bin/mattermost/export.tar.gz .
    ```
{end_tabs}

### Import into Zulip Cloud

Email support@zulip.com with your exported archive,
the name of the Mattermost team you want to import, and your desired Zulip
subdomain. Your imported organization will be hosted at
`<subdomain>.zulipchat.com`.

If you've already created a test organization at
`<subdomain>.zulipchat.com`, let us know, and we can rename the old
organization first.

### Import into a self-hosted Zulip server

First
[install a new Zulip server](https://zulip.readthedocs.io/en/stable/production/install.html),
skipping "Step 3: Create a Zulip organization, and log in" (you'll
create your Zulip organization via the data import tool instead).

Use [upgrade-zulip-from-git][upgrade-zulip-from-git] to
upgrade your Zulip server to the latest `master` branch.

Log in to a shell on your Zulip server as the `zulip` user. To import with
the most common configuration, run the following commands, replacing
`<team-name>` with the name of the Mattermost team you want to import.

```
cd /home/zulip
tar -xzvf export.tar.gz
cd /home/zulip/deployments/current
supervisorctl stop all  # Stop the Zulip server
./manage.py convert_mattermost_data /home/zulip/mattermost --output /home/zulip/converted_mattermost_data
./manage.py import "" /home/zulip/converted_mattermost_data/<team-name>
./scripts/restart-server
```

This could take several minutes to run, depending on how much data
you're importing.  The server stop/restart is only necessary when
importing on a server with minimal RAM, where an OOM kill might
otherwise occur.

**Import options**

The commands above create an imported organization on the root domain
(`EXTERNAL_HOST`) of the Zulip installation. You can also import into a
custom subdomain, e.g. if you already have an existing organization on the
root domain. Replace the last line above with the following, after replacing
`<subdomain>` with the desired subdomain.

```
./manage.py import <subdomain> /home/zulip/converted_mattermost_data/<team-name>
```

{!import-login.md!}

[upgrade-zulip-from-git]: https://zulip.readthedocs.io/en/latest/production/upgrade-or-modify.html#upgrading-from-a-git-repository

## Caveats

Mattermost's export tool is incomplete and does not support exporting
the following data:

* user avatars
* uploaded files and message attachments.

We expect to add support for importing these data from Mattermost once
Mattermost's export tool includes them.

Additionally, Mattermost's data exports do not associated private
messages with a specific Mattermost team.  For that reason, the import
tool will only import private messages for data export archives
containing a single Mattermost team.

[upgrade-zulip-from-git]: https://zulip.readthedocs.io/en/latest/production/upgrade-or-modify.html#upgrading-from-a-git-repository


text:
<?php

namespace PhpSsrs\ReportingService2010;

class SetItemParametersResponse
{

  /**
   *
   * @access public
   */
  public function __construct()
  {

  }

}


text:
function letsencrypt ()
{
mkdir -p ssl
mkdir -p $tmpFolder/letsencrypt/defaults
URL=$server_name
if [ ! -z $SUBDOMAINS ]; then
# see https://github.com/aptalca/docker-webserver/blob/master/firstrun.sh
  echo "SUBDOMAINS entered, processing"
  for job in $(echo $SUBDOMAINS | tr "," " "); do
    export SUBDOMAINS2="$SUBDOMAINS2 -d "$job"."$URL""
  done
  echo "Sub-domains processed are:" $SUBDOMAINS2
  echo -e "SUBDOMAINS2=\"$SUBDOMAINS2\" URL=\"$URL\" EMAIL=\"$EMAIL\"" > $tmpFolder/letsencrypt/defaults/domains.conf
else
  echo "No subdomains defined"
  echo -e "URL=\"$URL\" EMAIL=\"$EMAIL\"" > $tmpFolder/letsencrypt/defaults/domains.conf
fi

if [ ! -f $tmpFolder/letsencrypt/config/donoteditthisfile.conf ]; then
 mkdir -p $tmpFolder/letsencrypt/config
 touch $tmpFolder/letsencrypt/config/donoteditthisfile.conf
fi

. $tmpFolder/letsencrypt/config/donoteditthisfile.conf
#use quotes to fix:
#include/https.sh: line 29: [: files,rtorrent,sickrage,couchpotato,plex,explorer: unary operator expected

if [ ! "$URL" = "$ORIGURL" ] || [ ! "$SUBDOMAINS" = "$ORIGSUBDOMAINS" ]; then
  if [ -d $tmpFolder/letsencrypt/$URL ]; then
  echo "Different sub/domains entered than what was used before. Revoking and deleting existing certificate, and an updated one will be created"
  docker run -it --rm \
    -v $tmpFolder/letsencrypt:/etc/letsencrypt \
    -p 8080:80 -p 8443:443 \
    xataz/letsencrypt \
        revoke --non-interactive --cert-path /etc/letsencrypt/live/$URL/fullchain.pem
  fi
  rm -rf $tmpFolder/letsencrypt/live/$URL
  rm -rf /ssl/*.pem
  echo -e "ORIGURL=\"$URL\" ORIGSUBDOMAINS=\"$SUBDOMAINS\"" > $tmpFolder/letsencrypt/config/donoteditthisfile.conf
fi
chmod +x $INCLUDE/letsencrypt.sh
echo "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" > $tmpFolder/letsencryptcron.conf
here2=`pwd`
echo "0 2 * * * $here/$INCLUDE/letsencrypt.sh $tmpFolder $here2/ssl/ >> $tmpFolder/letsencrypt.log 2>&1" >> $tmpFolder/letsencryptcron.conf
crontab $tmpFolder/letsencryptcron.conf
if [[ ! -f ssl/dhparams.pem ]]; then
   openssl dhparam -out ssl/dhparams.pem 4096 &
fi
# generate the certificate
$here/$INCLUDE/letsencrypt.sh $tmpFolder $here2/ssl/
}

function self ()
{
mkdir -p ssl
openssl req -x509 -nodes -days 365 -newkey rsa:4096 \
      -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=*.$server_name" \
      -keyout ssl/nginx.key -out ssl/nginx.crt

}


text:
(function (exports) {

  'use strict';

  var domOverlay, closeOverlayButton, titleEl, iframe;

  function createWebviewIframe() {
    var newIframe = document.createElement('iframe');
    newIframe.id = 'webview-iframe';

    return newIframe;
  }

  var WebviewOverlay = {
    show: function (title, src) {
      if (!domOverlay) {
        domOverlay = document.getElementById('webview-overlay');
        closeOverlayButton = document.getElementById('webview-close');
        titleEl = document.getElementById('webview-overlay-title');
        iframe = document.getElementById('webview-iframe');
        // Add listeners
        closeOverlayButton.addEventListener('click', this.hide.bind(this));
      }
      domOverlay.classList.add('show');
      iframe.src = src || '';
      titleEl.textContent = title || '';
    },
    hide: function () {
      if (domOverlay) {
        domOverlay.classList.remove('show');
        domOverlay.removeChild(iframe);
        iframe = createWebviewIframe();
        domOverlay.appendChild(iframe);
      }
    }
  };

  exports.WebviewOverlay = WebviewOverlay;

}(this));


text:
/* This file contains the style settings for "Address Crowd Sourcing" template */
/* Use this file to perform the following: */

/* 1. Set the body styles                      - { Style(s) to look for: html, body } */
/* 2.  Set styles for splash screen            - { Style(s) to look for: divSplashScreenContainer,divSplashScreenContent,divSplashScreenDialogContent,divSplashContainer,divSplashContent
                                                                          customButton,customButtonInner } */
/* 3.  Set the styles for animations           - { Style(s) to look for: showContainer,hideContainer,
                                                                          opacityHideAnimation,hideContainerHeight,showContainerHeight,esriLogo}*/
/* 4. Set the header styles                    - { Style(s) to look for: tableHeader,imgApp,divLogo,divApplicationHeader,lblAppName }*/

/* 5. Set the loading styles                   - { Style(s) to look for: divLoadingIndicator,imgSearchLoader}*/
/* 6. Set the styles for search container      - { Style(s) to look for: divAddressScrollContainer,divAddressScrollContent,tblHeader,divAddressPlaceHolder,txtAddress,
                                                                          imgLocate,divAddressList,bottomborder,divAddressHolder,divAddressContent,imgLocate,tblAddressResults}*/
/* 7. Set the Styles for icons                 - { Style(s) to look for: customButton,imgOptions,imgShare,tdHeader }*/

/* 8. Set the styles for basemap container     - { Style(s) to look for: basemapThumbnail,baseMapContainerNode,basemapLabel,selectedBaseMap,divLayerContentHolder,divLayerContainer,divLayerHolder}*/

/* 9. Set the styles for tab container         - { Style(s) to look for: .claro .dijitTextBox,.claro .dijitTextBoxFocused .dijitInputContainer,.claro .dijitComboBoxMenu .dijitMenuItemSelected,.claro .dijitComboBoxMenuActive .dijitMenuItemSelected
                                                                         .claro .dijitMenu,.claro .dijitComboBoxMenu .dijitMenuItem,.claro .dijitReset ,.dijitInputInner,.claro .dijitContentPane,.rounded,span.rounded:hover,span.rounded:hover*/
/* 10. Set the styles for info window styles   - { Style(s) to look for: divInfoContainer divInfoDetailsScroll,tdInfoHeader,divInfoDetails,divInfoWindowContainer,divTriangle,spanContentText,title,.dj_ie .divInfoWindowContainer
                                                                          .divInfoWindowContainer .container,imgInfoWindow,divInfoWindowContainer .content,.divInfoWindowContainer ,title,txtBox,txtEnter,divCreateRequest}*/
/* 11. Set the styles for info window content  - { Style(s) to look for: tblTransparent,tdDisplayField,tdValueField,trHeight}*/
/* 12.Set the styles for scrollbar             -  { Style(s) to look for: scrollbar_container,scrollbar_track,scrollbar_handle,scrollbar_content,contactsScrollbar_container,
                                                                        contactsScrollbar_content,addressScrollbar_content,scrollbar_footer}*/
/* 13.Styles for textboxes                     - { Style(s) to look for: addressTxtBox}*/
/* 14.Styles for combo boxes                   - { Style(s) to look for: .claro .dijitComboBox .dijitArrowButtonInner,.claro .dijitTextBox .dijitInputField,.claro .dijitComboBox .dijitHasDropDownOpen,.dijitReset .dijitInputField .dijitArrowButtonInner
                                                                          .claro .dijitReset .dijitInputInner,.claro .dijitComboBox .dijitButtonNode,.dijitTextBox
/* 15.esri slider styles                       - { Style(s) to look for: esriSimpleSlider	}*/
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/

/* Styles for body*/

body, html
{
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    font-family: Verdana;
    overflow: hidden;
    color: White;
    visibility: visible !important;
    font-size: 11px !important;
}

/*---------------------------------------------------------------------------------------------------------*/
/* 2.Styles for splash screen*/

.divSplashScreenContainer
{
    top: 0px;
    left: 0px;
    background: rgba(0,0,0,0.65);
    -pie-background: rgba(0,0,0,0.65);
    behavior: url("PIE.htc");
    position: absolute;
    z-index: 1003;
    width: 100%;
    height: 100%;
}
 .divSplashScreenContent
{
    z-index: 1003;
    background-color: black;
    text-align: left;
}

.divSplashScreenDialogContent
{
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    -webkit-box-shadow: 0 0 10px #fff;
    -moz-box-shadow: 0 0 10px #fff;
    -o-box-shadow: 0 0 10px #fff;
    box-shadow: 0 0 10px #fff;
    behavior: url("PIE.htc");
}

.divSplashContainer
{
    overflow: hidden;
    position: relative;
}

.divSplashContent
{
    padding-left: 10px;
    overflow: hidden;
    width: 90%;
    font-size:11px !important;
}

.customButton
{
    border: none;
    color: #fff;
    cursor: pointer;
    background: -webkit-gradient(linear, left top, left bottom, from(#888), to(#454545)) !important;
    background: -moz-linear-gradient(top, #888, #454545) !important;
    background: -o-linear-gradient(#888, #454545) !important;
    background: linear-gradient(#888, #454545) !important;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    overflow: hidden;
    height: 25px !important;
    behavior: url("PIE.htc");
    font-size:11px!important;
}

.customButtonInner
{
    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#888888', endColorstr='#454545');
    width: 100%;
    height: 100%;
    font-size:11px !important;
}

/*---------------------------------------------------------------------------------------------------------*/
/* 3.animations */

.showContainer
{
    -webkit-transition: All 0.5s ease-in;
    -moz-transition: All 0.5s ease-in;
    -o-transition: All 0.5s ease-in;
    transition: All 0.5s ease-in;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
}

.hideContainer
{
    -webkit-transition: All 0.5s ease-in;
    -moz-transition: All 0.5s ease-in;
    -o-transition: All 0.5s ease-in;
    transition: All 0.5s ease-in;
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);

}

.opacityHideAnimation
{
    visibility: hidden;
    opacity: 0;
    -webkit-transition: visibility 0s linear 0.5s, opacity 0.5s ease-in;
    -moz-transition: visibility 0s linear 0.5s, opacity 0.5s ease-in;
    -o-transition: visibility 0s linear 0.5s, opacity 0.5s ease-in;
    transition: visibility 0s linear 0.5s, opacity 0.5s ease-in;
}

.hideContainerHeight
{
    overflow: hidden;
    -webkit-transition: height 0.5s ease-in;
    -moz-transition: height 0.5s ease-in;
    -o-transition: height 0.5s ease-in;
    transition: height 0.5s ease-in;
    height: 0px;
}

.showContainerHeight
{
    overflow: hidden;
    -webkit-transition: height 0.5s ease-in;
    -moz-transition: height 0.5s ease-in;
    -o-transition: height 0.5s ease-in;
    transition: height 0.5s ease-in;
    height: 100%;
}

.esriLogo
{
   bottom:10px;
    -webkit-transition: bottom 0.5s ease-in;
    -moz-transition: bottom 0.5s ease-in;
    -o-transition: bottom 0.5s ease-in;
    transition: bottom 0.5s ease-in;
    z-index:1001 !important;
}

/*---------------------------------------------------------------------------------------------------------*/
/* 4.Header Styles*/

.tableHeader
{
    width: 100%;
    height: 100%;
}

.imgApp
{
    width: 50px;
    height:50px;
}

.divLogo
{
    position: absolute !important;
    top: 0px;
    left: 0px;
    width: 75px;
    height: 75px;
    z-index: 1001;
}

.divApplicationHeader
{
    vertical-align: middle;
    background: rgba(0,0,0,0.9);
    -pie-background: rgba(0,0,0,0.9);
    behavior: url("PIE.htc");
    top: 0px;
    height: 55px;
    width: 100%;
    position: absolute;
    z-index: 1000;
    overflow: hidden;
    font-size: 24px;
}

.lblAppName
{
    padding-left: 90px;
    font-size:24px;
}

/*-----------------------------------------------------------------------------------------------------------------------------------------------*/
/*5 Styles for loading */

.divLoadingIndicator
{
    height: 100%;
    width: 100%;
    display: none;
    z-index: 1004;
    position: absolute;
    bottom: 0px;
    filter: alpha(opacity = 55);
    -moz-opacity: 0.55;
    -khtml-opacity: 0.55;
    opacity: 0.55;
    top: 0px;
    left: 0px;
    background: rgba(0,0,0,0.65);
    -pie-background: rgba(0,0,0,0.65);
    behavior: url("PIE.htc");
}

.imgSearchLoader
{
    vertical-align: middle;
    display: none;
    cursor: default;
}

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/

/*6.AddressContainer Styles*/

.divAddressScrollContainer
{
    overflow: hidden;
    position: relative;
}

.divAddressScrollContent
{
    overflow: hidden;
    width: 93%;
    color:White;
}

.tblHeader
{
     background-color: #303030;
    -moz-border-radius-topleft: 10px;
    -moz-border-radius-topright: 10px;
    -moz-border-radius-bottomleft: 0px;
    -moz-border-radius-bottomright: 0px;
    -webkit-border-top-left-radius: 10px;
    -webkit-border-top-right-radius: 10px;
    -webkit-border-bottom-left-radius: 0px;
    -webkit-border-bottom-right-radius: 0px;
     border-radius: 10px 10px 0px 0px;
    border-bottom:gray 1px solid;
}

.divAddressPlaceHolder
{
    border: 1px solid #242424;
    background-color: #333333;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
    border-radius: 3px;
    position: relative;
}

.txtAddress
{
    background-color: #333333;
    color: #fff;
    width: 240px;
    border: none !important;
    outline:none;
    padding:0px !important;
    vertical-align:middle;
    height:30px !important;
    font-size:11px !important;
    font-family: Verdana !important;
    line-height: 30px;
}

.imgLocate
{
    position: absolute;
    cursor: pointer;
    right: 0px;
}

.divAddressList
{
    margin-top: 5px;
    color: #fff;
    z-index: 101;
    background-color: transparent;
    border: none;
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px;
    behavior: url("PIE.htc");
}

.bottomborder
{
    border-bottom: 1px solid white;
}

.divAddressHolder
{
    z-index: 1000;
    position:absolute;
    top: 60px;
    right: 15px;
    width: 300px;
}
.divAddressContent
{
    height:300px;
     background-color: #585858;
    -moz-border-radius: 8px;
    -webkit-border-radius: 8px;
    border-radius: 8px;
    behavior: url("PIE.htc");
}

.imgLocate
{
    height: 30px !important;
    width: 30px !important;
}
.tblAddressResults
{
    font-size:11px;
   }

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/

/* 7.Styles for icons*/

.customButton
{
    height: 25px !important;
}

.imgOptions
{
    height: 30px !important;
    width: 30px !important;
    vertical-align: middle;
    padding:0px 5px 0px 0px;
    cursor:pointer;
}

.imgShare
{
    height: 30px !important;
    width: 30px !important;
    cursor:pointer;
}

.tdHeader
{
    width: 50px;
    font-weight: bolder;
    font-size:11px !important;
}

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/

/*8.Basemap Container Styles*/

.basemapThumbnail
{
    -moz-box-shadow: 0 0 7px #000000;
    border: 1px solid #fff;
    height: 67px;
    margin: 1px;
    width: 102px;
    cursor: pointer;
}

.baseMapContainerNode
{
    float: left;
    margin: 10px 10px 10px 10px;
    width: 100px;
}

.basemapLabel
{
    background-color: transparent;
    color: #fff;
    text-align: center;
    width: 100%;
    overflow: hidden;
    display: block;
}

.selectedBaseMap
{
    -webkit-box-shadow: 0 0 15px #63BA65;
    -moz-box-shadow: 0 0 15px #63BA65;
    box-shadow: 0 0 15px #63BA65;
    behavior: url("PIE.htc");
}

.divLayerContentHolder
{
    overflow: auto;
    padding:7px;
}
.divLayerContainer
{
    position: absolute;
    top: 60px;
    right: 15px;
    width: 260px;
    z-index: 1002;
    background-color: transparent;
}

.divLayerHolder
{
    width: 260px;
    height:115px;
    background: rgba(0,0,0,0.9);
    -pie-background: rgba(0,0,0,0.9);
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    behavior: url("PIE.htc");
}
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* 9.Set the styles for tab container */

.claro .dijitTextBox
{
    background-color: #333333 !important;
    color: #fff !important;
    font-family: Verdana !important;
    font-size: 11px;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
    border-radius: 3px;
}

.claro .dijitTextBoxFocused .dijitInputContainer
{
    background-color: #333333 !important;
    color: #fff !important;

}

.claro .dijitComboBoxMenu .dijitMenuItemSelected
{
    background-position: 0px -177px !important;
    background-color: #333333 !important;
    color: White !important;
}

.claro .dijitComboBoxMenuActive .dijitMenuItemSelected
{
    background-position: 0px -177px;
    background-color: red !important;
    color: White !important;
}

.claro .dijitMenu
{
    background-color: #333333 !important;
    color: #fff !important;
}

.claro .dijitComboBoxMenu .dijitMenuItem
{
    border: 0px solid #000 !important;
    white-space: pre-wrap;
    white-space: -moz-pre-wrap;
    white-space: -pre-wrap;
    white-space: -o-pre-wrap;
    word-wrap: break-word;
    background-color: #333333 !important;
}

.claro .dijitReset
{
    color: white !important;
    font-family: Verdana;
    background-color: #333333 !important;
}

.dijitInputInner
{
   height: 23px !important;
    line-height: 20px !important;
    border-radius:3px !important;

 }

.claro .dijitContentPane
{
    padding: 0px !important;
}

.rounded
{
    background: transparent url(images/buttonImage.png ) no-repeat scroll;
    clear: left;
    font-family: Verdana;
    font-size: 10px;
    display: block;
    height: 25px;
    line-height: 25px;
    width: 84px;
    text-align: center;
    color: White;
    cursor: pointer;
}

span.rounded:hover
{
    background-position: 100% -25px;
}

span.rounded:hover
{
    background-position: 0% -25px;
}
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* 10.InfoWindow Styles*/

.divInfoContainer
{
    top: 0px;
    left: 0px;
    background: rgba(0,0,0,0.9);
    position: absolute;
    z-index: 1002;
    width: 100%;
    height: 100%;
}

 .divInfoDetailsScroll
{
    overflow: hidden;
    width: 95%;
    color: White;
}

.tdInfoHeader
{
    font-weight: bolder;
    font-size:11px !important;
}

.divInfoDetails
{
    margin-left: 5px !important;
}

.divInfoWindowContainer
{
    z-index: 1000;
    position: absolute;
    background-color: #585858;
    color: #fff;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;
}

.divTriangle
{
    border: solid 20px transparent;
    border-top-color: #585858;
    border-bottom: 0;
    width: 0;
    height: 0;
    overflow: hidden;
    display: block;
    position: relative;
    margin: auto;
    bottom: 0px;
}

.spanContentText
{
    margin-left: 5px;
    margin-top: 5px;
    font-size:11px!important;
}

.title
{
    font-weight: bolder;
}

.dj_ie .divInfoWindowContainer
{
    border: none;
}

.imgInfoWindow
{
    position: relative;
}

.divInfoWindowContainer .content
{
    position: relative;
    color: #fff;
    overflow: auto;
}

.divInfoWindowContainer .title
{
    font-weight: bolder;
    height: 21px;
    padding: 7px 3px 2px 7px !important;
    color: #fff;
    background-color: #303030;
    -moz-border-radius-topleft: 7px;
    -moz-border-radius-topright: 7px;
    -moz-border-radius-bottomleft: 0px;
    -moz-border-radius-bottomright: 0px;
    -webkit-border-top-left-radius: 7px;
    -webkit-border-top-right-radius: 7px;
    -webkit-border-bottom-left-radius: 0px;
    -webkit-border-bottom-right-radius: 0px;
    border-top-left-radius: 7px;
    border-top-right-radius: 7px;
    border-bottom-left-radius: 0px;
    border-bottom-right-radius: 0px;
    border-bottom: gray 1px solid;
}

.txtBox
{
    border: none !important;
    outline: none;
    padding: 0px !important;
    margin-left: 4px;
    vertical-align: middle;
    background-color: #333333;
    color: #fff;
    font-family: Verdana !important;
    width: 203px;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
    border-radius: 3px;
    overflow: auto;
    font-size: 11px;
    overflow-x: hidden;
}

.txtEnter
{
 padding-right: 2px;
 }

.divCreateRequestContainer
{
    top: 0px;
    left: 0px;
    background: rgba(0,0,0,0.9);
    -pie-background: rgba(0,0,0,0.9);
    behavior: url("PIE.htc");
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 1002;
}

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* 11.Styles for infowindow content*/

.divInfoContent
{
    z-index: 1002;
    background-color: transparent;
}

.divCreateRequest
{
    z-index: 1002;
    background-color: transparent;
}

.divInfoWindowContainer .content
{
    padding: 0px !important;
    overflow: hidden;
}

.submitDiv
{
    height: 30px;
}

.infoOptions
{
    height: 30px !important;
    width: 30px !important;
    vertical-align: middle;
   padding-left: 2px;
   padding-right: 3px;
    cursor: pointer;
}

.trRowStyle
{
    height: 29px;
    font-size: 11px !important;
}

.txtBox
{
    height: 25px !important;
    line-height: 23px !important;
    font-size: 11px !important;
}

.divNewContacts
{
    position: absolute;
    top: 35px;
    padding-left: 5px;
    overflow: hidden;
    display: none;
}
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*12.Styles for scrollbar*/

.scrollbar_track
{
    position: absolute;
    background-color: transparent;
    display: none;
    right: 5px !important;
    top: 0px !important;
}

.scrollbar_handle
{
    position: relative;
    width: 10px;
    background-color: Silver;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    opacity: 0.9;
    -moz-opacity: 0.9;
    cursor: default;
    height:0px !important;
}

.scrollbar_content
{
    overflow: hidden;
    width: 325px;
    height: 210px;
    border: none;
}

.contactsScrollbar_container
{
    width: 340px;
    height: 180px;
    overflow: hidden;
    position: relative;
}

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* 13.Styles for textboxes*/

.addressTxtBox
{
    background-color: #333333;
    border: 1px solid #333333;
    width: 168px;
    height: 23px;
    color: #fff;
    font-size: 11px !important;
    border-radius: 3px;
    padding: 0px !important;
 line-height:21px !important;
}

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* 14.Styles for combo boxes    */
.claro .dijitComboBox .dijitArrowButtonInner
{
    background-image: url(images/DropDownNew.png) !important;
    background-position: 0px 0px !important;
    height: 23px !important;
    width: 21px !important;
    border: none !important;
}

.claro .dijitTextBox .dijitInputField
{
    padding: 0px !important;
    border-radius: 3px !important;
}

.claro .dijitComboBox .dijitHasDropDownOpen
{
    padding: 0px !important;
}
.dijitReset .dijitInputField .dijitArrowButtonInner
{
    margin-left: 5px !important;
    background-position: 0px -177px !important;
    padding-top: 7px !important;
    border: 0px !important;
}
.claro .dijitReset .dijitInputInner
{
    color: white !important;

}
.claro .dijitComboBox .dijitButtonNode
{

    border-width: 0px !important;
    background-image: none !important;
}
.dijitTextBox
{
     width: 168px !important;
     border-width: 0px !important;
}

/*---------------------------------------------------------------------------------------------------------*/
/* 15.esri slider style*/

.esriSimpleSlider
{
    top: 90px !important;
}


text:
package com.intellij.psi;

/**
 * THIS CLASS WAS GENERATED AUTOMATICALLY WITH StubGen BASED ON IDEA BINARIES
 * DON'T MODIFY IT MANUALLY!

 * @author Alexander Kochurov (alexander.kochurov@maxifier.com)
 */
public interface PsiCheckedRenameElement extends PsiNamedElement {
}


text:
var util = require("util");
var choreography = require("temboo/core/choreography");

/*
    Insert
    Adds a new media item to an album.
*/

var Insert = function(session) {
    /*
        Create a new instance of the Insert Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Google/Plus/Domains/Media/Insert"
    Insert.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new InsertResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new InsertInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the Insert
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var InsertInputSet = function() {
    InsertInputSet.super_.call(this);
        /*
        Set the value of the AccessToken input for this Choreo. ((optional, string) A valid access token retrieved during the OAuth2 process. This is required unless you provide the ClientID, ClientSecret, and RefreshToken to generate a new access token.)
        */
        this.set_AccessToken = function(value) {
            this.setInput("AccessToken", value);
        }

        /*
        Set the value of the ClientID input for this Choreo. ((conditional, string) The Client ID provided by Google. Required unless providing a valid AccessToken.)
        */
        this.set_ClientID = function(value) {
            this.setInput("ClientID", value);
        }

        /*
        Set the value of the ClientSecret input for this Choreo. ((conditional, string) The Client Secret provided by Google. Required unless providing a valid AccessToken.)
        */
        this.set_ClientSecret = function(value) {
            this.setInput("ClientSecret", value);
        }

        /*
        Set the value of the Collection input for this Choreo. ((optional, string) Currently the acceptable values are "cloud".  (Upload the media to share on Google+).)
        */
        this.set_Collection = function(value) {
            this.setInput("Collection", value);
        }

        /*
        Set the value of the ContentType input for this Choreo. ((conditional, string) The Content-Type of the file that is being uploaded (i.e. image/jpg). Required when specifying the FileContent input.)
        */
        this.set_ContentType = function(value) {
            this.setInput("ContentType", value);
        }

        /*
        Set the value of the DisplayName input for this Choreo. ((optional, string) The display name for the media. If this parameter is not provided, Google assigns a GUID to the media resource.)
        */
        this.set_DisplayName = function(value) {
            this.setInput("DisplayName", value);
        }

        /*
        Set the value of the Fields input for this Choreo. ((optional, string) Selector specifying a subset of fields to include in the response.)
        */
        this.set_Fields = function(value) {
            this.setInput("Fields", value);
        }

        /*
        Set the value of the FileContent input for this Choreo. ((conditional, string) The Base64 encoded contents of the file to upload.)
        */
        this.set_FileContent = function(value) {
            this.setInput("FileContent", value);
        }

        /*
        Set the value of the RefreshToken input for this Choreo. ((conditional, string) An OAuth refresh token used to generate a new access token when the original token is expired. Required unless providing a valid AccessToken.)
        */
        this.set_RefreshToken = function(value) {
            this.setInput("RefreshToken", value);
        }

        /*
        Set the value of the UserID input for this Choreo. ((optional, string) The ID of the user to create the activity on behalf of.  The value "me" is set as the default to indicate the authenticated user.)
        */
        this.set_UserID = function(value) {
            this.setInput("UserID", value);
        }

        /*
        Set the value of the VaultFile input for this Choreo. (A path to a vault file to upload. This can be used as an alternative to the FileContent input.)
        */

}

/*
A ResultSet with methods tailored to the values returned by the Insert Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var InsertResultSet = function(resultStream) {
    InsertResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "NewAccessToken" output from this Choreo execution. ((string) Contains a new AccessToken when the RefreshToken is provided.)
        */
        this.get_NewAccessToken = function() {
            return this.getResult("NewAccessToken");
        }
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((json) The response from Google.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
    /*
    A Google Drive file resource
    */
    this.getFile = function()  {
    	return new  GoogleFile(JSON.parse(this.getResult('Response')));
    }
}

util.inherits(Insert, choreography.Choreography);
util.inherits(InsertInputSet, choreography.InputSet);
util.inherits(InsertResultSet, choreography.ResultSet);
exports.Insert = Insert;

/******************************************************************************
Begin output wrapper classes
******************************************************************************/

/**
 * Utility function, to retrieve the array-type sub-item specified by the key from the parent (array) specified by the item.
 * Returns an empty array if key is not present.
 */
function getSubArrayByKey(item, key) {
	var val = item[key];
	if(val == null) {
		val = new Array();
	}
	return val;
}

/*
 An object representing the user who wrote this comment

*/

var GoogleAuthor = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	A plain text displayable name for this user
	*/
	this.getDisplayName = function()  {
		return base["displayName"];
	}

	/*
	Whether this user is the same as the authenticated user of which the request was made on behalf
	*/
	this.getIsAuthenticatedUser = function()  {
		return base["isAuthenticatedUser"];
	}

	/*
	This is always drive#user
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	Get the user's profile picture
	*/
	this.getPicture = function()  {
		return new  GooglePicture(base["picture"]);
	}
}

/*
 An object representing a change for a Google Drive resource

*/

var GoogleChange = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	Whether the file has been deleted
	*/
	this.getDeleted = function()  {
		return base["deleted"];
	}

	/*
	The ID of the file associated with this change
	*/
	this.getFileId = function()  {
		return base["fileId"];
	}

	/*
	The ID of the change
	*/
	this.getId = function()  {
		return base["id"];
	}

	/*
	This is always drive#change
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	A link back to this change
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}
}

/*
 A listing of changes in Google Drive

*/

var GoogleChangeList = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	The ETag of the list
	*/
	this.getEtag = function()  {
		return base["etag"];
	}

	/*
	A Google Drive change resource
	*/
	this.getChanges = function()  {
		var listEntries = base["items"];
		var resultArray = new Array();
		if(listEntries != null) {
			for(var i=0; i < listEntries.length; i++) {
				resultArray[i] = new  GoogleChange(listEntries[i]);
			}
		}
		return resultArray;
	}

	/*
	This is always drive#changeList
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	The current largest change ID
	*/
	this.getLargestChangeId = function()  {
		return base["largestChangeId"];
	}

	/*
	A link to the next page of changes
	*/
	this.getNextLink = function()  {
		return base["nextLink"];
	}

	/*
	The page token for the next page of changes
	*/
	this.getNextPageToken = function()  {
		return base["nextPageToken"];
	}

	/*
	A link back to this list
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}
}

/*
 A specific child reference

*/

var GoogleChild = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	A link to the child
	*/
	this.getChildLink = function()  {
		return base["childLink"];
	}

	/*
	The ID of the child
	*/
	this.getId = function()  {
		return base["id"];
	}

	/*
	This is always drive#childReference
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	A link back to this reference
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}
}

/*
  A listing of child resources

*/

var GoogleChildList = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	The ETag of the list
	*/
	this.getEtag = function()  {
		return base["etag"];
	}

	/*
	A Google Drive child resource
	*/
	this.getChildren = function()  {
		var listEntries = base["items"];
		var resultArray = new Array();
		if(listEntries != null) {
			for(var i=0; i < listEntries.length; i++) {
				resultArray[i] = new  GoogleChild(listEntries[i]);
			}
		}
		return resultArray;
	}

	/*
	This is always drive#childList
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	A link to the next page of children
	*/
	this.getNextLink = function()  {
		return base["nextLink"];
	}

	/*
	The page token for the next page of children
	*/
	this.getNextPageToken = function()  {
		return base["nextPageToken"];
	}

	/*
	A link back to this list
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}
}

/*
 An object representing a comment on a file

*/

var GoogleComment = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	Get the user who wronte this comment
	*/
	this.getAuthor = function()  {
		return new  GoogleAuthor(base["author"]);
	}

	/*
	The ID of the comment
	*/
	this.getCommentId = function()  {
		return base["commentId"];
	}

	/*
	The plain text content used to create this comment
	*/
	this.getContent = function()  {
		return base["content"];
	}

	/*
	The date when this comment was first created (formatted RFC 3339 timestamp)
	*/
	this.getCreatedDate = function()  {
		return base["createdDate"];
	}

	/*
	Whether this comment has been deleted
	*/
	this.getDeleted = function()  {
		return base["deleted"];
	}

	/*
	The file which this comment is addressing
	*/
	this.getFileId = function()  {
		return base["fileId"];
	}

	/*
	The title of the file which this comment is addressing
	*/
	this.getFileTitle = function()  {
		return base["fileTitle"];
	}

	/*
	HTML formatted content for this comment
	*/
	this.getHtmlContent = function()  {
		return base["htmlContent"];
	}

	/*
	This is always drive#comment
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	The date when this comment or any of its replies were last modified (formatted RFC 3339 timestamp)
	*/
	this.getModifiedDate = function()  {
		return base["modifiedDate"];
	}

	/*
	Get replies for this comment
	*/
	this.getReplies = function()  {
		var listEntries = base["replies"];
		var resultArray = new Array();
		if(listEntries != null) {
			for(var i=0; i < listEntries.length; i++) {
				resultArray[i] = new  GoogleReply(listEntries[i]);
			}
		}
		return resultArray;
	}

	/*
	The status of this comment (open or resolved)
	*/
	this.getStatus = function()  {
		return base["status"];
	}
}

/*
 A list of comments for a file

*/

var GoogleCommentList = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	A Google Drive comment resource
	*/
	this.getComments = function()  {
		var listEntries = base["items"];
		var resultArray = new Array();
		if(listEntries != null) {
			for(var i=0; i < listEntries.length; i++) {
				resultArray[i] = new  GoogleComment(listEntries[i]);
			}
		}
		return resultArray;
	}

	/*
	This is always drive#commentList
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	The page token for the next page of comments
	*/
	this.getNextPageToken = function()  {
		return base["nextPageToken"];
	}
}

/*
 Links for exporting Google Docs to specific formats

*/

var GoogleExportLinks = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	A link to the file in pdf format
	*/
	this.getPdfLink = function()  {
		return base["application/pdf"];
	}

	/*
	A link to the file in rtf format
	*/
	this.getRtfLink = function()  {
		return base["application/rtf"];
	}

	/*
	A link to the file in odt format
	*/
	this.getOdtLink = function()  {
		return base["application/vnd.oasis.opendocument.text"];
	}

	/*
	A link to the file in xlsx format
	*/
	this.getXlsxLink = function()  {
		return base["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"];
	}

	/*
	A link to the file in docx format
	*/
	this.getDocxLink = function()  {
		return base["application/vnd.openxmlformats-officedocument.wordprocessingml.document"];
	}

	/*
	A link to the file in ods format
	*/
	this.getOdsLink = function()  {
		return base["application/x-vnd.oasis.opendocument.spreadsheet"];
	}

	/*
	A link to the file in html format
	*/
	this.getHtmlLink = function()  {
		return base["text/html"];
	}

	/*
	A link to the file in txt format
	*/
	this.getTxtLink = function()  {
		return base["text/plain"];
	}
}

/*
 A complete Google Drive file resource

*/

var GoogleFile = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	A link for opening the file in using a relevant Google editor or viewer
	*/
	this.getAlternateLink = function()  {
		return base["alternateLink"];
	}

	/*
	Create time for this file (formatted ISO8601 timestamp)
	*/
	this.getCreatedDate = function()  {
		return base["createdDate"];
	}

	/*
	Whether the file can be edited by the current user
	*/
	this.getEditable = function()  {
		return base["editable"];
	}

	/*
	A link for embedding the file
	*/
	this.getEmbedLink = function()  {
		return base["embedLink"];
	}

	/*
	ETag of the file
	*/
	this.getEtag = function()  {
		return base["etag"];
	}

	/*
	A Link for exporting Google Docs to specific formats
	*/
	this.getExportLinks = function()  {
		return new  GoogleExportLinks(base["exportLinks"]);
	}

	/*
	A link to the file's icon
	*/
	this.getIconLink = function()  {
		return base["iconLink"];
	}

	/*
	The ID of the file
	*/
	this.getId = function()  {
		return base["id"];
	}

	/*
	The type of file (this is always drive#file)
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	this.getLabels = function()  {
		return new  GoogleLabels(base["labels"]);
	}

	/*
	Name of the last user to modify this file. This will only be populated if a user has edited this file
	*/
	this.getLastModifyingUserName = function()  {
		return base["lastModifyingUserName"];
	}

	/*
	Last time this file was viewed by the user (formatted RFC 3339 timestamp)
	*/
	this.getLastViewedByMeDate = function()  {
		return base["lastViewedByMeDate"];
	}

	/*
	The mimetype of the file
	*/
	this.getMimeType = function()  {
		return base["mimeType"];
	}

	/*
	Last time this file was modified by the user (formatted RFC 3339 timestamp)
	*/
	this.getModifiedByMeDate = function()  {
		return base["modifiedByMeDate"];
	}

	/*
	Last time this file was modified by anyone (formatted RFC 3339 timestamp)
	*/
	this.getModifiedDate = function()  {
		return base["modifiedDate"];
	}

	/*
	Name(s) of the owner(s) of this file
	*/
	this.getOwnerNames = function()  {
		var listEntries = base["ownerNames"];
		var resultArray = new Array();
		if(listEntries != null) {
			for(var i=0; i < listEntries.length; i++) {
				resultArray[i] = listEntries[i];
			}
		}
		return resultArray;
	}

	/*
	A parent folder which contain this file
	*/
	this.getParents = function()  {
		var listEntries = base["parents"];
		var resultArray = new Array();
		if(listEntries != null) {
			for(var i=0; i < listEntries.length; i++) {
				resultArray[i] = new  GoogleParent(listEntries[i]);
			}
		}
		return resultArray;
	}

	/*
	The number of quota bytes used by this file
	*/
	this.getQuotaBytesUsed = function()  {
		return base["quotaBytesUsed"];
	}

	/*
	A link back to this file
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}

	/*
	Whether or not this file is shared
	*/
	this.getShared = function()  {
		return base["shared"];
	}

	/*
	Time at which this file was shared with the user (formatted RFC 3339 timestamp)
	*/
	this.getSharedWithMeDate = function()  {
		return base["sharedWithMeDate"];
	}

	/*
	A link to the file's thumbnail
	*/
	this.getThumbnailLink = function()  {
		return base["thumbnailLink"];
	}

	/*
	The title of the this file
	*/
	this.getTitle = function()  {
		return base["title"];
	}

	/*
	The permissions for the authenticated user on this file.
	*/
	this.getUserPermission = function()  {
		return new  GoogleUserPermission(base["userPermission"]);
	}

	/*
	Whether writers can share the document with other users
	*/
	this.getWritersCanShare = function()  {
		return base["writersCanShare"];
	}
}

/*
 A listing of files in Google Drive

*/

var GoogleFileList = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	The ETag of the list
	*/
	this.getEtag = function()  {
		return base["etag"];
	}

	/*
	A Google Drive file resource
	*/
	this.getFiles = function()  {
		var listEntries = base["items"];
		var resultArray = new Array();
		if(listEntries != null) {
			for(var i=0; i < listEntries.length; i++) {
				resultArray[i] = new  GoogleFile(listEntries[i]);
			}
		}
		return resultArray;
	}

	/*
	The type of resource (this is always rive#fileList)
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	A link to the next page of files
	*/
	this.getNextLink = function()  {
		return base["nextLink"];
	}

	/*
	The page token for the next page of files
	*/
	this.getNextPageToken = function()  {
		return base["nextPageToken"];
	}

	/*
	A link back to this list
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}
}

/*
 A label for the file

*/

var GoogleLabels = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	Whether or not the file is hidden
	*/
	this.getHidden = function()  {
		return base["hidden"];
	}

	/*
	Whether or not the file is restricted
	*/
	this.getRestricted = function()  {
		return base["restricted"];
	}

	/*
	Whether or not the file is starred
	*/
	this.getStarred = function()  {
		return base["starred"];
	}

	/*
	Whether or not the file is trashed
	*/
	this.getTrashed = function()  {
		return base["trashed"];
	}

	/*
	Whether or not the file is viewed
	*/
	this.getViewed = function()  {
		return base["viewed"];
	}
}

/*
 An object containing a parent resource

*/

var GoogleParent = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	The id of the folder
	*/
	this.getId = function()  {
		return base["id"];
	}

	/*
	Whether or not this folder is the root
	*/
	this.getIsRoot = function()  {
		return base["isRoot"];
	}

	/*
	The type of resource
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	The link to the parent
	*/
	this.getParentLink = function()  {
		return base["parentLink"];
	}

	/*
	A link back to this reference
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}
}

/*
 A list of parent resources

*/

var GoogleParentList = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	The ETag of the list
	*/
	this.getEtag = function()  {
		return base["etag"];
	}

	/*
	A Google Drive parent resource
	*/
	this.getParents = function()  {
		var listEntries = base["items"];
		var resultArray = new Array();
		if(listEntries != null) {
			for(var i=0; i < listEntries.length; i++) {
				resultArray[i] = new  GoogleParent(listEntries[i]);
			}
		}
		return resultArray;
	}

	/*
	The type of resource (this is always drive#parentList)
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	A link back to this list
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}
}

/*
 An object representing a permission resource

*/

var GooglePermission = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	The ETag of the permission
	*/
	this.getEtag = function()  {
		return base["etag"];
	}

	/*
	The ID of the permission
	*/
	this.getId = function()  {
		return base["id"];
	}

	/*
	This is always drive#permission
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	The name for this permission
	*/
	this.getName = function()  {
		return base["name"];
	}

	/*
	The primary role for this user. Allowed values are: owner, reader, and writer
	*/
	this.getRole = function()  {
		return base["role"];
	}

	/*
	A link back to this permission
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}

	/*
	The account type. Allowed values are: user, group, domain, and anyone
	*/
	this.getType = function()  {
		return base["type"];
	}
}

/*
 A list of permission for a file

*/

var GooglePermissionList = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	The ETag of the list
	*/
	this.getEtag = function()  {
		return base["etag"];
	}

	/*
	A Google Drive permission resource
	*/
	this.getPermissions = function()  {
		var listEntries = base["items"];
		var resultArray = new Array();
		if(listEntries != null) {
			for(var i=0; i < listEntries.length; i++) {
				resultArray[i] = new  GooglePermission(listEntries[i]);
			}
		}
		return resultArray;
	}

	/*
	This is always drive#permissionList
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	A link back to this list
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}
}

/*
 An object representing the user's profile picture

*/

var GooglePicture = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	A URL that points to a profile picture of this user
	*/
	this.getUrl = function()  {
		return base["url"];
	}
}

/*
 An object representing a reply to a comment

*/

var GoogleReply = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	Get the user who wronte this comment
	*/
	this.getAuthor = function()  {
		return new  GoogleAuthor(base["author"]);
	}

	/*
	The plain text content used to create this reply
	*/
	this.getContent = function()  {
		return base["content"];
	}

	/*
	The date when this reply was first created (formatted RFC 3339 timestamp)
	*/
	this.getCreatedDate = function()  {
		return base["createdDate"];
	}

	/*
	Whether this reply has been deleted
	*/
	this.getDeleted = function()  {
		return base["deleted"];
	}

	/*
	HTML formatted content for this reply
	*/
	this.getHtmlContent = function()  {
		return base["htmlContent"];
	}

	/*
	This is always drive#commentReply
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	The date when this reply was last modified (formatted RFC 3339 timestamp)
	*/
	this.getModifiedDate = function()  {
		return base["modifiedDate"];
	}

	/*
	The ID of the reply
	*/
	this.getReplyId = function()  {
		return base["replyId"];
	}
}

/*
 A list of replies to a specified comment on a file

*/

var GoogleReplyList = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	Get a reply to a Google Drive comment
	*/
	this.getReplies = function()  {
		var listEntries = base["items"];
		var resultArray = new Array();
		if(listEntries != null) {
			for(var i=0; i < listEntries.length; i++) {
				resultArray[i] = new  GoogleReply(listEntries[i]);
			}
		}
		return resultArray;
	}

	/*
	This is always drive#commentReplyList
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	A link to the next page of replies
	*/
	this.getNextLink = function()  {
		return base["nextLink"];
	}

	/*
	The page token for the next page of replies
	*/
	this.getNextPageToken = function()  {
		return base["nextPageToken"];
	}
}

/*
 An object representing a revision of a file

*/

var GoogleRevision = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	The ETag of the revision
	*/
	this.getEtag = function()  {
		return base["etag"];
	}

	/*
	Get links for exporting Google Docs to specific formats
	*/
	this.getExportLinks = function()  {
		return new  GoogleExportLinks(base["exportLinks"]);
	}

	/*
	The ID of the revision
	*/
	this.getId = function()  {
		return base["id"];
	}

	/*
	This is always drive#revision
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	Name of the last user to modify this revision
	*/
	this.getLastModifyingUserName = function()  {
		return base["lastModifyingUserName"];
	}

	/*
	The MIME type of the revision
	*/
	this.getMimeType = function()  {
		return base["mimeType"];
	}

	/*
	Last time this revision was modified (formatted RFC 3339 timestamp)
	*/
	this.getModifiedDate = function()  {
		return base["modifiedDate"];
	}

	/*
	Whether this revision is published
	*/
	this.getPublished = function()  {
		return base["published"];
	}

	/*
	A link back to this revision
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}
}

/*
 A list of a file's revisions

*/

var GoogleRevisionList = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	The ETag of the list
	*/
	this.getEtag = function()  {
		return base["etag"];
	}

	/*
	Get a revision for a file
	*/
	this.getRevisions = function()  {
		var listEntries = base["items"];
		var resultArray = new Array();
		if(listEntries != null) {
			for(var i=0; i < listEntries.length; i++) {
				resultArray[i] = new  GoogleRevision(listEntries[i]);
			}
		}
		return resultArray;
	}

	/*
	This is always drive#revisionList
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	A link back to this list
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}
}

/*
 An object containing a permission resource

*/

var GoogleUserPermission = function(base) {
	var base = base;
    if(typeof(base) == 'undefined')
        base = new Array();

	this.getBase = function() {
		return base;
	}
	/*
	The ETag of the permission
	*/
	this.getEtag = function()  {
		return base["etag"];
	}

	/*
	The ID of the permission
	*/
	this.getId = function()  {
		return base["id"];
	}

	/*
	The type of resource (this is always drive#permission)
	*/
	this.getKind = function()  {
		return base["kind"];
	}

	/*
	The primary role for this user. Allowed values are: owner, reader, writer
	*/
	this.getRole = function()  {
		return base["role"];
	}

	/*
	A link back to this permission
	*/
	this.getSelfLink = function()  {
		return base["selfLink"];
	}

	/*
	The account type. Allowed values are: user, group, domain, anyone
	*/
	this.getType = function()  {
		return base["type"];
	}
}


text:
struct State;
struct Edge
{
    int match_content;
    State* to_state;
};

struct State
{
    int sequence;
    Edge e1;
    Edge e2;
};

struct Fragment
{
    State* start;
    State* end;
};

State* post2nfa(const std::string &s);
bool match(const std::string &str, State* start);

#endif // NFA2_H