text:
var resource = require('../'),
    creature = resource.define('creature');

creature.persist('memory');

creature.property('name');

creature.before('create', function (data, next) {
  console.log('before creature.create')
  data.name += '-a';
  next(null, data)
});

creature.after('create', function (data, next) {
  console.log('after creature.create')
  data.name += "-b";
  next(null, data);
});

creature.create({ name: 'bobby' }, function (err, result) {
  console.log(err, result);
});

creature.on('create', function(data){
  console.log('create has been created!', data)
});

creature.method('eat', function (options, callback){
  callback(null, options);
});

creature.on('eat', function(data){
  console.log('create ate!', data)
});

creature.eat({}, function(){});

creature.emit('eat', "food")


text:
package com.amazonaws.services.autoscaling.model.transform;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.amazonaws.AmazonClientException;
import com.amazonaws.Request;
import com.amazonaws.DefaultRequest;
import com.amazonaws.http.HttpMethodName;
import com.amazonaws.services.autoscaling.model.*;
import com.amazonaws.transform.Marshaller;
import com.amazonaws.util.StringUtils;

/**
 * PutNotificationConfigurationRequest Marshaller
 */

public class PutNotificationConfigurationRequestMarshaller
        implements
        Marshaller<Request<PutNotificationConfigurationRequest>, PutNotificationConfigurationRequest> {

    public Request<PutNotificationConfigurationRequest> marshall(
            PutNotificationConfigurationRequest putNotificationConfigurationRequest) {

        if (putNotificationConfigurationRequest == null) {
            throw new AmazonClientException(
                    "Invalid argument passed to marshall(...)");
        }

        Request<PutNotificationConfigurationRequest> request = new DefaultRequest<PutNotificationConfigurationRequest>(
                putNotificationConfigurationRequest, "AmazonAutoScaling");
        request.addParameter("Action", "PutNotificationConfiguration");
        request.addParameter("Version", "2011-01-01");
        request.setHttpMethod(HttpMethodName.POST);

        if (putNotificationConfigurationRequest.getAutoScalingGroupName() != null) {
            request.addParameter("AutoScalingGroupName", StringUtils
                    .fromString(putNotificationConfigurationRequest
                            .getAutoScalingGroupName()));
        }

        if (putNotificationConfigurationRequest.getTopicARN() != null) {
            request.addParameter("TopicARN", StringUtils
                    .fromString(putNotificationConfigurationRequest
                            .getTopicARN()));
        }

        com.amazonaws.internal.SdkInternalList<String> notificationTypesList = (com.amazonaws.internal.SdkInternalList<String>) putNotificationConfigurationRequest
                .getNotificationTypes();
        if (!notificationTypesList.isEmpty()
                || !notificationTypesList.isAutoConstruct()) {
            int notificationTypesListIndex = 1;

            for (String notificationTypesListValue : notificationTypesList) {
                if (notificationTypesListValue != null) {
                    request.addParameter("NotificationTypes.member."
                            + notificationTypesListIndex,
                            StringUtils.fromString(notificationTypesListValue));
                }
                notificationTypesListIndex++;
            }
        }

        return request;
    }

}

redpajama_set_name: RedPajamaGithub


text:
<?php

namespace Symfony\Component\Validator\Tests\Fixtures;

use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
use Symfony\Component\Validator\ExecutionContext;

class ConstraintAValidator extends ConstraintValidator
{
    public static $passedContext;

    public function initialize(ExecutionContext $context)
    {
        parent::initialize($context);

        self::$passedContext = $context;
    }

    public function validate($value, Constraint $constraint)
    {
        if ('VALID' != $value) {
            $this->context->addViolation('message', array('param' => 'value'));

            return;
        }

        return;
    }
}


text:
<?php

declare(strict_types=1);

namespace OpenCFP\Infrastructure\Auth;

use Cartalyst\Sentinel\Sentinel;
use Cartalyst\Sentinel\Users\UserInterface as SentinelUserInterface;
use OpenCFP\Domain\Model\User;
use OpenCFP\Domain\Repository\UserRepository;
use OpenCFP\Domain\Services\IdentityProvider;
use OpenCFP\Domain\Services\NotAuthenticatedException;

final class SentinelIdentityProvider implements IdentityProvider
{
    /**
     * @var Sentinel
     */
    private $sentinel;

    /**
     * @var UserRepository
     */
    private $userRepository;

    public function __construct(Sentinel $sentinel, UserRepository $userRepository)
    {
        $this->sentinel       = $sentinel;
        $this->userRepository = $userRepository;
    }

    /**
     * Retrieves the currently authenticated user
     *
     * @throws NotAuthenticatedException
     */
    public function getCurrentUser(): User
    {
        $user = $this->sentinel->getUser();

        if (!$user instanceof SentinelUserInterface) {
            throw new NotAuthenticatedException();
        }

        return $this->userRepository->findById($user->getUserId());
    }
}


text:
import React from "react";
import ReactDOM from "react-dom";
import {NavigationBar} from "./components/PageComponents";

function TermsOfService() {
    return (

Collect Earth Online Terms of Service

Email policy

                    By creating an institution you become an "admin"
                    user for that institution. Doing so will automatically
                    subscribe you for the mailing list. This mailing list is run
                    through a service called HubSpot.
                    You will be able to unsubscribe by clicking "unsubscribe"
                    from within any email from CEO. In addition, any user that you
                    make an admin of your institution will be added to the mailing list.

                    The content of the emails from the mailing list will be limited
                    to updates about features and release dates, with the very occasional
                    feedback survey.

                    Your email will not be shared with any third party organization.

Disclaimers

                    The SERVIR Network, NASA, and USAID make no express or
                    implied warranty of this application and associated data
                    as to the merchantability or fitness for a particular
                    purpose. Neither the US Government nor its contractors
                    shall be liable for special, consequential or incidental
                    damages attributed to this application and associated
                    data.

                    FAO declines all responsibility for errors or deficiencies
                    in the database or software or in the documentation
                    accompanying it, for program maintenance and upgrading as
                    well as for any damage that may arise from them.

                    FAO also declines any responsibility for updating the data
                    and assumes no responsibility for errors and omissions in
                    the data provided. Users are, however, kindly asked to
                    report any errors or deficiencies in this product.

Data Retention Policy

                    Collect Earth Online makes no guarantee of retention of data.
                    Please ensure that you keep local copies of any information
                    used to create a project and any results downloaded.

                    Specific clean up activities are described below:

Projects will be removed when the survey has not been collected in a certain amount of time.

                                The project has been inactive for 180 days,
                                and the phase is not published, and the number of plots collected is under 5%

                                The project has been inactive for 270 days,
                                and the number of plots collected is under 5%

                                The project has been inactive for 730 days,
                                and the number of plots collected is under 20%

Institutions will be removed when there contain no Projects

Institutions with no projects, and was created over 180 days ago

                    Admin discretion can be used at any point for projects or institutions
                    that are created with malformed or test data.

    );
}

export function pageInit(args) {
    ReactDOM.render(
        <NavigationBar
            userId={args.userId}
            userName={args.userName}
            version={args.version}
        >
            <TermsOfService/>
        </NavigationBar>,
        document.getElementById("app")
    );
}


text:
var Version = require('../lib/version');

module.exports = {

    data: function () {
        return _.extend({
            view: 'index',
            status: 'success',
            finished: false,
            update: false,
            output: '',
            progress: 0,
            errors: []
        }, window.$data);
    },

    created: function () {
        this.getVersions();
    },

    computed: {

        hasUpdate: function () {
            return this.update && Version.compare(this.update.version, this.version, '>');
        }

    },

    methods: {

        getVersions: function () {

            this.$http.get(this.api + '/api/update', function (data) {

                var channel = data[this.channel == 'nightly' ? 'nightly' : 'latest'];

                if (channel) {
                    this.$set('update', channel);
                } else {
                    this.error(this.$trans('Cannot obtain versions. Please try again later.'));
                }
            }).error(function () {
                this.error(this.$trans('Cannot connect to the server. Please try again later.'));
            });

        },

        install: function () {
            this.$set('view', 'installation');
            this.doDownload(this.update);
        },

        doDownload: function (update) {
            this.$set('progress', 33);
            this.$http.post('admin/system/update/download', {url: update.url, shasum: update.shasum})
                .success(this.doInstall)
                .error(this.error);
        },

        doInstall: function () {
            var vm = this;

            this.$set('progress', 66);
            this.$http.get('admin/system/update/update', this.doMigration, {
                xhr: {
                    onprogress: function () {
                        vm.setOutput(this.responseText);
                    }
                }
            }).error(this.error);
        },

        doMigration: function () {
            this.$set('progress', 100);
            if (this.status === 'success') {
                this.$http.get('admin/system/migration/migrate', function (data) {
                    this.output += "\n\n" + data.message;
                    this.finished = true;
                }).error(this.error);
            } else {
                this.error();
            }
        },

        setOutput: function (output) {
            var lines = output.split("\n");
            var match = lines[lines.length - 1].match(/^status=(success|error)$/);

            if (match) {
                this.status = match[1];
                delete lines[lines.length - 1];
                this.output = lines.join("\n");
            } else {
                this.output = output;
            }

        },

        error: function (error) {
            this.errors.push(error || this.$trans('Whoops, something went wrong.'));

            this.status = 'error';
            this.finished = true;
        }

    }

};

jQuery(function () {

    (new Vue(module.exports)).$mount('#update');

});


text:
require 'railswizard'

module Railswizard
class Recipe
  attr_accessor :category
  attr_accessor :name
  attr_accessor :key
  attr_accessor :exclusive

  def initialize(opts={})
    @category  = opts[:category]
    @name      = opts[:name]
    @key       = opts[:key]
    @exclusive = opts[:exclusive]
  end

  def ==(other)
    @category  == other.category &&
    @name      == other.name &&
    @key       == other.key &&
    @exclusive == other.exclusive
  end

  def match_to_given?(given_param)
    [@name, @key].include? given_param
  end

end
end


text:
#include <zephyr/ztest.h>
#include <zephyr/interrupt_util.h>

/*
 * Run the nested interrupt test for the supported platforms only.
 */
#if defined(CONFIG_CPU_CORTEX_M) || defined(CONFIG_ARC) || \
	defined(CONFIG_GIC)
#define TEST_NESTED_ISR
#endif

#define DURATION	5

#define ISR0_TOKEN	0xDEADBEEF
#define ISR1_TOKEN	0xCAFEBABE

/*
 * This test uses two IRQ lines selected within the range of available IRQs on
 * the target SoC.  These IRQs are platform and interrupt controller-specific,
 * and must be specified for every supported platform.
 *
 * In terms of priority, the IRQ1 is triggered from the ISR of the IRQ0;
 * therefore, the priority of IRQ1 must be greater than that of the IRQ0.
 */
#if defined(CONFIG_CPU_CORTEX_M)
/*
 * For Cortex-M NVIC, unused and available IRQs are automatically detected when
 * the test is run.
 *
 * The IRQ priorities start at 1 because the priority 0 is reserved for the
 * SVCall exception and Zero-Latency IRQs (see `_EXCEPTION_RESERVED_PRIO`).
 */
#define IRQ0_PRIO	2
#define IRQ1_PRIO	1
#elif defined(CONFIG_GIC)
/*
 * For the platforms that use the ARM GIC, use the SGI (software generated
 * interrupt) lines 14 and 15 for testing.
 */
#define IRQ0_LINE	14
#define IRQ1_LINE	15

/*
 * Choose lower prio for IRQ0 and higher priority for IRQ1
 * Minimum legal value of GICC BPR is '3' ie  <gggg.ssss>
 * Hence choosing default priority and highest possible priority
 * '0x0' as the priorities so that the preemption rule applies
 * generically to all GIC versions and security states.
 */
#define IRQ0_PRIO	IRQ_DEFAULT_PRIORITY
#define IRQ1_PRIO	0x0
#else
/*
 * For all the other platforms, use the last two available IRQ lines for
 * testing.
 */
#define IRQ0_LINE	(CONFIG_NUM_IRQS - 1)
#define IRQ1_LINE	(CONFIG_NUM_IRQS - 2)

#define IRQ0_PRIO	1
#define IRQ1_PRIO	0
#endif

#ifdef TEST_NESTED_ISR
static uint32_t irq_line_0;
static uint32_t irq_line_1;

static uint32_t isr0_result;
static uint32_t isr1_result;

void isr1(const void *param)
{
	ARG_UNUSED(param);

	printk("isr1: Enter\n");

	/* Set verification token */
	isr1_result = ISR1_TOKEN;

	printk("isr1: Leave\n");
}

void isr0(const void *param)
{
	ARG_UNUSED(param);

	printk("isr0: Enter\n");

	/* Set verification token */
	isr0_result = ISR0_TOKEN;

	/* Trigger nested IRQ 1 */
	trigger_irq(irq_line_1);

	/* Wait for interrupt */
	k_busy_wait(MS_TO_US(DURATION));

	/* Validate nested ISR result token */
	zassert_equal(isr1_result, ISR1_TOKEN, "isr1 did not execute");

	printk("isr0: Leave\n");
}

/**
 * @brief Test interrupt nesting
 *
 * @ingroup kernel_interrupt_tests
 *
 * This routine tests the interrupt nesting feature, which allows an ISR to be
 * preempted in mid-execution if a higher priority interrupt is signaled. The
 * lower priority ISR resumes execution once the higher priority ISR has
 * completed its processing.
 *
 * The expected control flow for this test is as follows:
 *
 * 1. [thread] Trigger IRQ 0 (lower priority)
 * 2. [isr0] Set ISR 0 result token and trigger IRQ 1 (higher priority)
 * 3. [isr1] Set ISR 1 result token and return
 * 4. [isr0] Validate ISR 1 result token and return
 * 5. [thread] Validate ISR 0 result token
 */
ZTEST(interrupt_feature, test_nested_isr)
{
	/* Resolve test IRQ line numbers */
#if defined(CONFIG_CPU_CORTEX_M)
	irq_line_0 = get_available_nvic_line(CONFIG_NUM_IRQS);
	irq_line_1 = get_available_nvic_line(irq_line_0);
#else
	irq_line_0 = IRQ0_LINE;
	irq_line_1 = IRQ1_LINE;
#endif

	/* Connect and enable test IRQs */
	arch_irq_connect_dynamic(irq_line_0, IRQ0_PRIO, isr0, NULL, 0);
	arch_irq_connect_dynamic(irq_line_1, IRQ1_PRIO, isr1, NULL, 0);

	irq_enable(irq_line_0);
	irq_enable(irq_line_1);

	/* Trigger test IRQ 0 */
	trigger_irq(irq_line_0);

	/* Wait for interrupt */
	k_busy_wait(MS_TO_US(DURATION));

	/* Validate ISR result token */
	zassert_equal(isr0_result, ISR0_TOKEN, "isr0 did not execute");
}
#else
ZTEST(interrupt_feature, test_nested_isr)
{
	ztest_test_skip();
}
#endif /* TEST_NESTED_ISR */


text:
package com.github.benmanes.caffeine.cache;

import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;

import com.yahoo.ycsb.generator.IntegerGenerator;
import com.yahoo.ycsb.generator.ScrambledZipfianGenerator;

/**
 * @author ben.manes@gmail.com (Ben Manes)
 */
@State(Scope.Benchmark)
public class FrequencySketchBenchmark {
  private static final int SIZE = (2 << 14);
  private static final int MASK = SIZE - 1;
  private static final int ITEMS = SIZE / 3;

  int index = 0;
  Integer[] ints;
  FrequencySketch<Integer> sketch;

  @Setup
  public void setup() {
    ints = new Integer[SIZE];
    sketch = new FrequencySketch<>(ITEMS);
    IntegerGenerator generator = new ScrambledZipfianGenerator(ITEMS);
    for (int i = 0; i < SIZE; i++) {
      ints[i] = generator.nextInt();
      sketch.increment(i);
    }
  }

  @Benchmark
  public void increment() {
    sketch.increment(ints[index++ & MASK]);
  }

  @Benchmark
  public void frequency() {
    sketch.frequency(ints[index++ & MASK]);
  }
}


text:
<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="Patrik Svensson">
    <meta name="generator" content="Sparrow">
    <meta name="keywords" content="" />
    <link rel="icon" href="/favicon.ico">
    <link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700,600' rel='stylesheet' type='text/css'>

    <title>Cake Build</title>

    <link href="/css/bootstrap.min.css" rel="stylesheet">
    <link href="/css/jumbotron-narrow.css" rel="stylesheet">
    <link href="/css/font-awesome.css" rel="stylesheet">
    <link href="/css/styles/monokai_sublime.css" rel="stylesheet">
    <link href="/css/cake.css" rel="stylesheet">

          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            Toggle navigation

          </button>
          Cake Build

 Source Code

 Download

 DSL Reference

 API Reference

Start

What is Cake?

Getting started

Documentation

Tasks

Dependencies

Criterias

Error handling

Error reporting

Finally block

Setup and teardown

Running targets

Script aliases

Addins

Contribute

DSL reference

API reference

Dependencies

Documentation

Dependencies

To add a dependency on another task, use the IsDependentOn-method.

Task("A")
  .Does(() =>
{
});

Task("B")
  .IsDependentOn("A");
  .Does(() =>
{
});

RunTarget("B");

This will first execute target A and then B as expected.


text:
module.exports = ($scope, Search)
  $scope.search = ''
  $scope.results = []

  $scope.validate = () ->
    Search.validate $scope.search

  $scope.executeSearch = () ->
    Search.query $scope.search
    .then (res) -> $scope.results = res
    .fail (err) -> $scope.error = err


text:
//
//  RCUploadMediaStatusListener.h
//  RongIMLib
//
//  Created by litao on 15/8/28.
//  Copyright (c) 2015年 RongCloud. All rights reserved.
//

#import "RCMessage.h"
#import <Foundation/Foundation.h>

/*!
 媒体文件上传进度更新的IMKit监听

 @discussion 此监听用于IMKit发送媒体文件消息(上传到指定服务器)。
 App在上传媒体文件时,需要在监听中调用updateBlock、successBlock与errorBlock,通知IMKit
 SDK当前上传媒体文件的进度和状态,SDK会更新UI。
 */
@interface RCUploadMediaStatusListener : NSObject

/*!
 上传的媒体文件消息的消息实体
 */
@property(nonatomic, strong) RCMessage *currentMessage;

/*!
 更新上传进度需要调用的block [progress:当前上传的进度,0 <= progress < 100]
 */
@property(nonatomic, strong) void (^updateBlock)(int progress);

/*!
 上传成功需要调用的block [remoteUrl:媒体文件的网络URL]
 */
@property(nonatomic, strong) void (^successBlock)(NSString *remoteUrl);

/*!
 上传成功需要调用的block [errorCode:上传失败的错误码,非0整数]
 */
@property(nonatomic, strong) void (^errorBlock)(RCErrorCode errorCode);

/*!
 上传取消需要调用的block
 */
@property(nonatomic, strong) void (^cancelBlock)();

/*!
 初始化媒体文件上传进度更新的IMKit监听

 @param message             媒体文件消息的消息实体
 @param progressBlock       更新上传进度需要调用的block
 @param successBlock        上传成功需要调用的block
 @param errorBlock          上传失败需要调用的block
 @param cancelBlock         上传取消需要调用的block(如果未实现,传nil即可)

 @return                    媒体文件上传进度更新的IMKit监听对象
 */
- (instancetype)initWithMessage:(RCMessage *)message
                 uploadProgress:(void (^)(int progress))progressBlock
                  uploadSuccess:(void (^)(NSString *remoteUrl))successBlock
                    uploadError:(void (^)(RCErrorCode errorCode))errorBlock
                   uploadCancel:(void (^)())cancelBlock;

/*!
 取消当前上传

 @discussion 如果您实现取消正在上传的媒体消息功能,则必须实现此回调。
 您需要在取消成功之后,调用cancelBlock通知SDK,SDK会自动更新UI。
 */
- (void)cancelUpload;

@end


text:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mongo="http://www.springframework.org/schema/data/mongo"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                      http://www.springframework.org/schema/aop
                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
                      http://www.springframework.org/schema/mvc
                      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                      http://www.springframework.org/schema/context
                      http://www.springframework.org/schema/context/spring-context-3.0.xsd
                      http://www.springframework.org/schema/data/mongo
                      http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd">

  <mvc:annotation-driven />

  <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/view/" />
    <property name="suffix" value=".jsp" />
  </bean>

  <!-- Main Context -->
  <context:component-scan base-package="com.webcabi.core.service" />
  <context:component-scan base-package="com.webcabi.core.controller" />
  <mongo:repositories base-package="com.webcabi.core.repository" />
</beans>


text:
package jobs

import (
	"fmt"
	"time"

	"github.com/hashicorp/nomad/api"
	"github.com/jippi/hashi-ui/backend/structs"
)

const (
	RollingRestart = "NOMAD_ROLLING_RESTART_JOB"
)

type rollingRestart struct {
	action structs.Action
	client *api.Client
}

func NewRollingRestart(action structs.Action, client *api.Client) *rollingRestart {
	return &rollingRestart{
		action: action,
		client: client,
	}
}

func (w *rollingRestart) Do() (structs.Response, error) {
	origJob, _, err := w.client.Jobs().Info(w.action.Payload.(string), nil)
	if err != nil {
		return structs.NewErrorResponse(err)
	}

	timestamp := time.Now()
	if origJob.Meta == nil {
		origJob.Meta = make(map[string]string)
	}
	origJob.Meta["hashi-ui.restarted"] = timestamp.String()
	origJob.Stop = boolToPtr(false) // force start

	_, _, err = w.client.Jobs().Register(origJob, nil)
	if err != nil {
		return structs.NewErrorResponse(err)
	}

	return structs.NewSuccessResponse("Successfully rolling restarted job")
}

func (w *rollingRestart) Key() string {
	return fmt.Sprintf("/job/%s/rolling-restart", w.action.Payload.(string))
}

func (w *rollingRestart) IsMutable() bool {
	return true
}

func (w *rollingRestart) BackendType() string {
	return "nomad"
}


text:
'use strict';
/**
  * controller for angular-bootstrap-nav-tree
  * An AngularJS directive that creates a Tree based on a Bootstrap "nav" list.
*/
angular.module('core').controller('TreeCtrl', ["$scope", "$timeout", function ($scope, $timeout) {
    var apple_selected, tree, treedata_avm, treedata_geography;
    $scope.my_tree_handler = function (branch) {
        var _ref;
        $scope.output = "You selected: " + branch.label;
        if ((_ref = branch.data) != null ? _ref.description :
		void 0) {
            return $scope.output += '(' + branch.data.description + ')';
        }
    };
    apple_selected = function (branch) {
        return $scope.output = "APPLE! : " + branch.label;
    };
    treedata_avm = [{
        label: 'Animal',
        children: [{
            label: 'Dog',
            data: {
                description: "man's best friend"
            }
        }, {
            label: 'Cat',
            data: {
                description: "Felis catus"
            }
        }, {
            label: 'Hippopotamus',
            data: {
                description: "hungry, hungry"
            }
        }, {
            label: 'Chicken',
            children: ['White Leghorn', 'Rhode Island Red', 'Jersey Giant']
        }]
    }, {
        label: 'Vegetable',
        data: {
            definition: "A plant or part of a plant used as food, typically as accompaniment to meat or fish, such as a cabbage, potato, carrot, or bean.",
            data_can_contain_anything: true
        },
        onSelect: function (branch) {
            return $scope.output = "Vegetable: " + branch.data.definition;
        },
        children: [{
            label: 'Oranges'
        }, {
            label: 'Apples',
            children: [{
                label: 'Granny Smith',
                onSelect: apple_selected
            }, {
                label: 'Red Delicous',
                onSelect: apple_selected
            }, {
                label: 'Fuji',
                onSelect: apple_selected
            }]
        }]
    }, {
        label: 'Mineral',
        children: [{
            label: 'Rock',
            children: ['Igneous', 'Sedimentary', 'Metamorphic']
        }, {
            label: 'Metal',
            children: ['Aluminum', 'Steel', 'Copper']
        }, {
            label: 'Plastic',
            children: [{
                label: 'Thermoplastic',
                children: ['polyethylene', 'polypropylene', 'polystyrene', ' polyvinyl chloride']
            }, {
                label: 'Thermosetting Polymer',
                children: ['polyester', 'polyurethane', 'vulcanized rubber', 'bakelite', 'urea-formaldehyde']
            }]
        }]
    }];
    treedata_geography = [{
        label: 'North America',
        children: [{
            label: 'Canada',
            children: ['Toronto', 'Vancouver']
        }, {
            label: 'USA',
            children: ['New York', 'Los Angeles']
        }, {
            label: 'Mexico',
            children: ['Mexico City', 'Guadalajara']
        }]
    }, {
        label: 'South America',
        children: [{
            label: 'Venezuela',
            children: ['Caracas', 'Maracaibo']
        }, {
            label: 'Brazil',
            children: ['Sao Paulo', 'Rio de Janeiro']
        }, {
            label: 'Argentina',
            children: ['Buenos Aires', 'Cordoba']
        }]
    }];
    $scope.my_data = treedata_avm;
    $scope.try_changing_the_tree_data = function () {
        if ($scope.my_data === treedata_avm) {
            return $scope.my_data = treedata_geography;
        } else {
            return $scope.my_data = treedata_avm;
        }
    };
    $scope.my_tree = tree = {};
    $scope.try_async_load = function () {
        $scope.my_data = [];
        $scope.doing_async = true;
        return $timeout(function () {
            if (Math.random() < 0.5) {
                $scope.my_data = treedata_avm;
            } else {
                $scope.my_data = treedata_geography;
            }
            $scope.doing_async = false;
            return tree.expand_all();
        }, 1000);
    };
    return $scope.try_adding_a_branch = function () {
        var b;
        b = tree.get_selected_branch();
        return tree.add_branch(b, {
            label: 'New Branch',
            data: {
                something: 42,
                "else": 43
            }
        });
    };
}]);


text:
#import "NSObject.h"

#import "OccurrenceCacheDataSourceProtocol-Protocol.h"

@class EKEventStore, NSArray, NSMutableDictionary, NSSet;

@interface OccurrenceCacheDataSource : NSObject <OccurrenceCacheDataSourceProtocol>
{
    EKEventStore *_eventStore;
    NSSet *_calendars;
    NSArray *_cachedDays;
    NSMutableDictionary *_cachedOccurrences;
    int _cachedDaysSeed;
}

- (void).cxx_destruct;
- (void)invalidate;
- (void)stopSearching;
- (void)searchWithTerm:(id)arg1;
- (void)fetchDaysInBackgroundStartingFromSection:(long long)arg1;
- (long long)sectionForCachedOccurrencesOnDate:(id)arg1;
- (id)cachedOccurrenceAtIndexPath:(id)arg1;
- (id)dateAtDayIndex:(long long)arg1;
- (long long)countOfOccurrencesAtDayIndex:(long long)arg1;
- (long long)cachedDayCount;
- (id)_cachedDays;
- (_Bool)cachedOccurrencesAreLoaded;
- (_Bool)cachedOccurrencesAreBeingGenerated;
- (_Bool)supportsFakeTodaySection;
- (_Bool)supportsInvitations;
- (void)invalidateCachedOccurrences;
- (id)initWithEventStore:(id)arg1 calendars:(id)arg2;

@end


text:
{-# LANGUAGE RankNTypes #-}

module Graphics.Gloss.Internals.Interface.Game
	( playWithBackendIO
	, Event(..) )
where
import Graphics.Gloss.Data.Color
import Graphics.Gloss.Data.Picture
import Graphics.Gloss.Data.ViewPort
import Graphics.Gloss.Internals.Render.Common
import Graphics.Gloss.Internals.Render.Picture
import Graphics.Gloss.Internals.Interface.Event
import Graphics.Gloss.Internals.Interface.Backend
import Graphics.Gloss.Internals.Interface.Window
import Graphics.Gloss.Internals.Interface.Common.Exit
import Graphics.Gloss.Internals.Interface.ViewState.Reshape
import Graphics.Gloss.Internals.Interface.Animate.Timing
import Graphics.Gloss.Internals.Interface.Simulate.Idle
import qualified Graphics.Gloss.Internals.Interface.Callback		as Callback
import qualified Graphics.Gloss.Internals.Interface.Simulate.State	as SM
import qualified Graphics.Gloss.Internals.Interface.Animate.State	as AN
import qualified Graphics.Gloss.Internals.Render.State	        	as RS
import Data.IORef
import System.Mem

playWithBackendIO
	:: forall world a
	.  Backend a
	=> a				-- ^ Initial state of the backend
        -> Display                      -- ^ Display mode.
	-> Color			-- ^ Background color.
	-> Int				-- ^ Number of simulation steps to take for each second of real time.
	-> world 			-- ^ The initial world.
	-> (world -> IO Picture)	-- ^ A function to convert the world to a picture.
	-> (Event -> world -> IO world)	-- ^ A function to handle input events.
	-> (Float -> world -> IO world)	-- ^ A function to step the world one iteration.
					--   It is passed the period of time (in seconds) needing to be advanced.
	-> Bool				-- ^ Whether to use the callback_exit or not.
	-> IO ()

playWithBackendIO
	backend
        display
	backgroundColor
	simResolution
	worldStart
	worldToPicture
	worldHandleEvent
	worldAdvance
	withCallbackExit
 = do
	let singleStepTime	= 1

	-- make the simulation state
	stateSR		<- newIORef $ SM.stateInit simResolution

	-- make a reference to the initial world
	worldSR		<- newIORef worldStart

	-- make the initial GL view and render states
	viewSR		<- newIORef viewPortInit
	animateSR	<- newIORef AN.stateInit
        renderS_        <- RS.stateInit
	renderSR	<- newIORef renderS_

	let displayFun backendRef
	     = do
		-- convert the world to a picture
		world		<- readIORef worldSR
		picture		<- worldToPicture world

		-- display the picture in the current view
		renderS		<- readIORef renderSR
		viewS		<- readIORef viewSR

		-- render the frame
		renderAction
			backendRef
	 	 	(renderPicture backendRef renderS viewS picture)

		-- perform garbage collection
		performGC

	let callbacks
	     = 	[ Callback.Display	(animateBegin animateSR)
		, Callback.Display 	displayFun
		, Callback.Display	(animateEnd   animateSR)
		, Callback.Idle		(callback_simulate_idle
						stateSR animateSR (readIORef viewSR)
						worldSR worldStart (\_ -> worldAdvance)
						singleStepTime)
		, callback_keyMouse worldSR viewSR worldHandleEvent
		, callback_motion   worldSR worldHandleEvent
		, callback_reshape  worldSR worldHandleEvent]

	let exitCallback
		 = if withCallbackExit then [callback_exit ()] else []

	createWindow backend display backgroundColor $ callbacks ++ exitCallback

-- | Callback for KeyMouse events.
callback_keyMouse
	:: IORef world	 		-- ^ ref to world state
	-> IORef ViewPort
	-> (Event -> world -> IO world)	-- ^ fn to handle input events
	-> Callback

callback_keyMouse worldRef viewRef eventFn
 	= KeyMouse (handle_keyMouse worldRef viewRef eventFn)

handle_keyMouse
	:: IORef a
	-> t
	-> (Event -> a -> IO a)
	-> KeyboardMouseCallback

handle_keyMouse worldRef _ eventFn backendRef key keyState keyMods pos
 = do	ev         <- keyMouseEvent backendRef key keyState keyMods pos
        world      <- readIORef worldRef
        world'     <- eventFn ev world
        writeIORef worldRef world'

-- | Callback for Motion events.
callback_motion
	:: IORef world	 		-- ^ ref to world state
	-> (Event -> world -> IO world)	-- ^ fn to handle input events
	-> Callback

callback_motion worldRef eventFn
 	= Motion (handle_motion worldRef eventFn)

handle_motion
	:: IORef a
	-> (Event -> a -> IO a)
	-> MotionCallback

handle_motion worldRef eventFn backendRef pos
 = do   ev       <- motionEvent backendRef pos
        world    <- readIORef worldRef
        world'   <- eventFn ev world
        writeIORef worldRef world'

-- | Callback for Handle reshape event.
callback_reshape
  :: IORef world
  -> (Event -> world -> IO world)
  -> Callback
callback_reshape worldRef eventFN
 	= Reshape (handle_reshape worldRef eventFN)

handle_reshape
  :: IORef world
  -> (Event -> world -> IO world)
  -> ReshapeCallback
handle_reshape worldRef eventFn stateRef (width,height)
 = do   world  <- readIORef worldRef
        world' <- eventFn (EventResize (width, height)) world
        writeIORef worldRef world'
        viewState_reshape stateRef (width, height)


text:
<component name="ProjectRunConfigurationManager">
  <configuration default="false" name="simple-php-git-deploy" type="PhpRemoteDebugRunConfigurationType" factoryName="PHP Remote Debug" singleton="false" server_name="localhost" session_id="PHPSTORM">
    <RunnerSettings RunnerId="PhpRemoteDebugRunner" />
    <ConfigurationWrapper RunnerId="PhpRemoteDebugRunner" />
    <method />
  </configuration>
</component>


text:
describe "JSONSelect", "parser" do

  p_levels = "../fixtures/parser/level_*"
  p_groups = %w( basic )

  levels = {}

  d = Dir[File.expand_path(p_levels, __FILE__)]
  d.each do |dir|
    level = (levels[File.basename(dir)] = {})

    p_groups.each do |gname|
      json  = File.expand_path(gname, dir)
      group = (level[gname] = {})

      d = Dir[File.expand_path("../#{gname}_*.selector", json)]
      d.each do |selector|
        name = File.basename(selector, '.selector').split('_', 2).last

        group[name] = [selector,
          File.expand_path("../#{gname}_#{name}.output", selector)]
      end
    end
  end

  levels.each do |level, groups|
    describe "(#{level})" do
      groups.each do |group, tests|
        describe "(#{group})" do
          tests.each do |test, (selector_p, output_p)|
            describe "(#{test})" do

              let(:selector) do
                File.read(selector_p)
              end

              let(:output) do
                File.read(output_p)
              end

              it "produces the correct selector" do
                JSONSelect(selector).to_s.should == output
              end

            end
          end
        end
      end
    end
  end

end


text:
using System;

namespace ClooToOpenTK
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            using (MainWindow mainWindow = new MainWindow())
            {
                mainWindow.Run();
            }
        }
    }
}


text:
using namespace cpr;

static HttpServer* server = new HttpServer();

TEST(DeleteTests, DeleteTest) {
    Url url{server->GetBaseUrl() + "/delete.html"};
    Response response = cpr::Delete(url);
    std::string expected_text{"Delete success"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
    EXPECT_EQ(200, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, DeleteUnallowedTest) {
    Url url{server->GetBaseUrl() + "/delete_unallowed.html"};
    Response response = cpr::Delete(url);
    std::string expected_text{"Method Not Allowed"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/plain"}, response.header["content-type"]);
    EXPECT_EQ(405, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, DeleteJsonBodyTest) {
    Url url{server->GetBaseUrl() + "/delete.html"};
    Response response = cpr::Delete(url, cpr::Body{"'foo': 'bar'"},
                                    cpr::Header{{"Content-Type", "application/json"}});
    std::string expected_text{"'foo': 'bar'"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"application/json"}, response.header["content-type"]);
    EXPECT_EQ(200, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, SessionDeleteTest) {
    Url url{server->GetBaseUrl() + "/delete.html"};
    Session session;
    session.SetUrl(url);
    Response response = session.Delete();
    std::string expected_text{"Delete success"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
    EXPECT_EQ(200, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, SessionDeleteUnallowedTest) {
    Url url{server->GetBaseUrl() + "/delete_unallowed.html"};
    Session session;
    session.SetUrl(url);
    Response response = session.Delete();
    std::string expected_text{"Method Not Allowed"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/plain"}, response.header["content-type"]);
    EXPECT_EQ(405, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, SessionDeleteJsonBodyTest) {
    Url url{server->GetBaseUrl() + "/delete.html"};
    Session session;
    session.SetUrl(url);
    session.SetHeader(cpr::Header{{"Content-Type", "application/json"}});
    session.SetBody(cpr::Body{"{'foo': 'bar'}"});
    Response response = session.Delete();
    std::string expected_text{"{'foo': 'bar'}"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"application/json"}, response.header["content-type"]);
    EXPECT_EQ(200, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, SessionDeleteAfterGetTest) {
    Session session;
    {
        Url url{server->GetBaseUrl() + "/get.html"};
        session.SetUrl(url);
        Response response = session.Get();
    }
    Url url{server->GetBaseUrl() + "/delete.html"};
    session.SetUrl(url);
    Response response = session.Delete();
    std::string expected_text{"Delete success"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
    EXPECT_EQ(200, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, SessionDeleteUnallowedAfterGetTest) {
    Session session;
    {
        Url url{server->GetBaseUrl() + "/get.html"};
        session.SetUrl(url);
        Response response = session.Get();
    }
    Url url{server->GetBaseUrl() + "/delete_unallowed.html"};
    session.SetUrl(url);
    Response response = session.Delete();
    std::string expected_text{"Method Not Allowed"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/plain"}, response.header["content-type"]);
    EXPECT_EQ(405, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, SessionDeleteAfterHeadTest) {
    Session session;
    {
        Url url{server->GetBaseUrl() + "/get.html"};
        session.SetUrl(url);
        Response response = session.Head();
    }
    Url url{server->GetBaseUrl() + "/delete.html"};
    session.SetUrl(url);
    Response response = session.Delete();
    std::string expected_text{"Delete success"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
    EXPECT_EQ(200, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, SessionDeleteUnallowedAfterHeadTest) {
    Session session;
    {
        Url url{server->GetBaseUrl() + "/get.html"};
        session.SetUrl(url);
        Response response = session.Head();
    }
    Url url{server->GetBaseUrl() + "/delete_unallowed.html"};
    session.SetUrl(url);
    Response response = session.Delete();
    std::string expected_text{"Method Not Allowed"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/plain"}, response.header["content-type"]);
    EXPECT_EQ(405, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, SessionDeleteAfterPostTest) {
    Session session;
    {
        Url url{server->GetBaseUrl() + "/url_post.html"};
        Payload payload{{"x", "5"}};
        session.SetUrl(url);
        Response response = session.Post();
    }
    Url url{server->GetBaseUrl() + "/patch_unallowed.html"};
    session.SetUrl(url);
    Response response = session.Delete();
    std::string expected_text{"Delete success"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
    EXPECT_EQ(200, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, SessionDeleteUnallowedAfterPostTest) {
    Session session;
    {
        Url url{server->GetBaseUrl() + "/url_post.html"};
        Payload payload{{"x", "5"}};
        session.SetUrl(url);
        Response response = session.Post();
    }
    Url url{server->GetBaseUrl() + "/delete_unallowed.html"};
    session.SetUrl(url);
    Response response = session.Delete();
    std::string expected_text{"Method Not Allowed"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/plain"}, response.header["content-type"]);
    EXPECT_EQ(405, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, AsyncDeleteTest) {
    Url url{server->GetBaseUrl() + "/delete.html"};
    cpr::AsyncResponse future_response = cpr::DeleteAsync(url);
    cpr::Response response = future_response.get();
    std::string expected_text{"Delete success"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
    EXPECT_EQ(200, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, AsyncDeleteUnallowedTest) {
    Url url{server->GetBaseUrl() + "/delete_unallowed.html"};
    cpr::AsyncResponse future_response = cpr::DeleteAsync(url);
    cpr::Response response = future_response.get();
    std::string expected_text{"Method Not Allowed"};
    EXPECT_EQ(expected_text, response.text);
    EXPECT_EQ(url, response.url);
    EXPECT_EQ(std::string{"text/plain"}, response.header["content-type"]);
    EXPECT_EQ(405, response.status_code);
    EXPECT_EQ(ErrorCode::OK, response.error.code);
}

TEST(DeleteTests, AsyncMultipleDeleteTest) {
    Url url{server->GetBaseUrl() + "/delete.html"};
    std::vector<AsyncResponse> responses;
    for (size_t i = 0; i < 10; ++i) {
        responses.emplace_back(cpr::DeleteAsync(url));
    }
    for (cpr::AsyncResponse& future_response : responses) {
        cpr::Response response = future_response.get();
        std::string expected_text{"Delete success"};
        EXPECT_EQ(expected_text, response.text);
        EXPECT_EQ(url, response.url);
        EXPECT_EQ(std::string{"text/html"}, response.header["content-type"]);
        EXPECT_EQ(200, response.status_code);
        EXPECT_EQ(ErrorCode::OK, response.error.code);
    }
}

TEST(DeleteTests, AsyncMultipleDeleteUnallowedTest) {
    Url url{server->GetBaseUrl() + "/delete_unallowed.html"};
    std::vector<AsyncResponse> responses;
    for (size_t i = 0; i < 10; ++i) {
        responses.emplace_back(cpr::DeleteAsync(url));
    }
    for (cpr::AsyncResponse& future_response : responses) {
        cpr::Response response = future_response.get();
        std::string expected_text{"Method Not Allowed"};
        EXPECT_EQ(expected_text, response.text);
        EXPECT_EQ(url, response.url);
        EXPECT_EQ(std::string{"text/plain"}, response.header["content-type"]);
        EXPECT_EQ(405, response.status_code);
        EXPECT_EQ(ErrorCode::OK, response.error.code);
    }
}

int main(int argc, char** argv) {
    ::testing::InitGoogleTest(&argc, argv);
    ::testing::AddGlobalTestEnvironment(server);
    return RUN_ALL_TESTS();
}


text:
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}

\usepackage[utf8]{inputenc} % this is needed for umlauts
\usepackage[ngerman]{babel} % this is needed for umlauts
\usepackage[T1]{fontenc}    % this is needed for correct output of umlauts in pdf
\usepackage{amssymb,amsmath,amsfonts} % nice math rendering
\usepackage{braket} % needed for \Set
\usepackage{caption}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

\DeclareCaptionFormat{myformat}{#3}
\captionsetup[algorithm]{format=myformat}

\begin{document}
\begin{preview}
    \begin{algorithm}[H]
        \begin{algorithmic}
        \Require
        \Statex Sates $\mathcal{X} = \{1, \dots, n_x\}$
        \Statex Actions $\mathcal{A} = \{1, \dots, n_a\},\qquad A: \mathcal{X} \Rightarrow \mathcal{A}$
        \Statex Reward function $R: \mathcal{X} \times \mathcal{A} \rightarrow \mathbb{R}$
        \Statex Black-box (probabilistic) transition function $T: \mathcal{X} \times \mathcal{A} \rightarrow \mathcal{X}$
        \Statex Learning rate $\alpha \in [0, 1]$, typically $\alpha = 0.1$
        \Statex Discounting factor $\gamma \in [0, 1]$
        \Statex $\lambda \in [0, 1]$: Trade-off between TD and MC
        \Procedure{SARSA}{$\mathcal{X}$, $A$, $R$, $T$, $\alpha$, $\gamma$, $\lambda$}
            \State Initialize $Q: \mathcal{X} \times \mathcal{A} \rightarrow \mathbb{R}$ arbitrarily
            \While{$Q$ is not converged}
                \State Select $(s, a) \in \mathcal{X} \times \mathcal{A}$ arbitrarily
                \While{$s$ is not terminal}
                    \State $r \gets R(s, a)$ \Comment{Receive the reward}
                    \State $s' \gets T(s, a)$ \Comment{Receive the new state}
                    \State Calculate $\pi$ based on $Q$ (e.g. epsilon-greedy)
                    \State $a' \gets \pi(s')$
                    \State $Q(s, a) \gets (1 - \alpha ) \cdot Q(s, a) + \alpha \cdot (r + \gamma Q(s', a'))$
                    \State $s \gets s'$
                    \State $a \gets a'$
                \EndWhile
            \EndWhile
            \Return $Q$
        \EndProcedure
        \end{algorithmic}
    \caption{SARSA: Learn function $Q: \mathcal{X} \times \mathcal{A} \rightarrow \mathbb{R}$}
    \label{alg:sarsa}
    \end{algorithm}
\end{preview}
\end{document}


text:
define(
	 ({
		viewer: {
			loading: {
				step1: "HİKAYE YÜKLENİYOR",
				step2: "VERİLER YÜKLENİYOR",
				step3: "TUR BAŞLATILIYOR",
				loadBuilder: "DERLEYİCİ MODUNA GEÇİLİYOR",
				redirectSignIn: "OTURUM AÇMA SAYFASINA YÖNLENDİRİLİYOR",
				redirectSignIn2: "(oturum açtıktan sonra buraya yeniden yönlendirileceksiniz)",
				fail: "Üzgünüz, Harita Turu yüklenemedi",
				failButton: "Tekrar dene"
			},
			errors: {
				boxTitle: "Bir hata oluştu",
				portalSelf: "Onarılamaz hata: Portal yapılandırması alınamadı",
				invalidConfig: "Onarılamaz: Geçersiz yapılandırma",
				invalidConfigOwner: "Onarılamaz hata: Geçersiz yapılandırma (yetkili sahip gerekiyor)",
				invalidConfigNoWebmap: "Onarılamaz hata: Geçersiz yapılandırma (web harita veya uygulama tanımlayıcısı index.html dosyasında belirtilmemiş)",
				invalidConfigNoAppDev: "Web Haritalama Uygulaması belirteci veya web haritası URL parametrelerinde (?appid= veya ?webmap=) belirtilmemiş. Geliştirme modunda index.html dosyasındaki appid ve web haritası yapılandırması yoksayılır.",
				createMap: "Harita oluşturulamıyor",
				invalidApp: "Onarılamaz hata: Hikaye yüklenemiyor",
				noLayer: "Web haritası Harita Turu için geçerli bir veri katmanı içermiyor.",
				noLayerMobile: "Harita Turu oluşturucu, bu ekran boyutunda desteklenmez. Mümkünse, oluşturucu erişimi için tarayıcınızı yeniden boyutlandırın veya hikayenizi daha büyük ekranı olan bir cihazda oluşturun.",
				noLayerMobile2: "Cihazınızı yatay konuma döndürerek Harita Turu oluşturucuyu kullanın.",
				noLayerView: "Harita Turu web uygulamasına hoş geldiniz.
Hikaye henüz yapılandırılmadı.",
				appSave: "Hikaye kaydetme hatası",
				mapSave: "Web haritasını kaydederken hata oluştu",
				featureServiceLoad: "Detay servisi yüklenirken hata oluştu",
				notAuthorized: "Bu hikayeye erişme yetkiniz yok",
				notAuthorizedBuilder: "Harita Turu oluşturucuyu kullanma yetkiniz yok.",
				oldBrowserTitle: "Tarayıcı tam olarak desteklenmiyor",
				noBuilderIE8: "Harita Turu derleyicisi 9. sürümden önceki Internet Explorer\'da desteklenmemektedir.",
				ie10Win7Explain: "Veri kaynağı ekleri olan bir Detay Servisi olduğunda, Harita Turu etkileşimli derleyicisi Windows 7\'de Internet Explorer 10\'da desteklenmez. Ekleri olan bir Detay Servisi kullanmak için belge modunu Internet Explorer 9 standartlarına el ile zorlamalı, Internet Explorer 9\'ı geri yüklemeli veya Windows 8\'e yükselmelisiniz.",
				oldBrowserExplain: "Bu tarayıcı, harita turunuza yüklediğiniz görüntülerden otomatik küçük resim oluşturmayı desteklemiyor. Bu tarayıcıyı kullanarak bir harita turu oluşturabilirsiniz, ancak yüklediğiniz her görüntü için ayrı bir küçük resim görüntüsü sağlamanız gerekir.",
				oldBrowserExplain2: "Deneyiminizi iyileştirmek için, tarayıcınızı yükseltin veya Google Chrome Frame for Internet Explorer\'ı etkinleştirin.",
				oldBrowserExplain3: "Harita Turu derleyicisi Windows XP\'de Internet Explorer 10 ile çalışmaz.",
				oldBrowserClose: "Kapat"
			},
			mobileHTML: {
				showIntro: "BAŞLIĞI GÖSTER",
				hideIntro: "BAŞLIĞI GİZLE",
				navList: "Liste",
				navMap: "Harita",
				navInfo: "Medya",
				introStartBtn: "Başlangıç"
			},
			desktopHTML: {
				storymapsText: "Bir öykü haritası",
				builderButton: "Derleyici moduna geç",
				facebookTooltip: "Facebook\'ta Paylaş",
				twitterTooltip: "Twitter\'da Paylaş",
				bitlyTooltip: "Kısa bağlantı edin",
				bitlyStartIndex: "Geçerli yere bağlantı kur",
				tooltipAutoplayDisabled: "Bu özellik otomatik oynatma modunda kullanılamaz",
				autoplayLabel: "Otomatik oynatma modu",
				autoplayExplain1: "Otomatik oynatma modu düzenli aralıklarla hikayenizde ilerler. Bu özellik, bir kiosk ya da genel ekran için idealdir, ancak bunun bazı durumlarda hikayenin okunmasını güçleştirebileceğini unutmayın. Bu özellik küçük ekranlarda desteklenmez.",
				autoplayExplain2: "Bu etkin durumdayken hikayeyi oynatacak/duraklatacak ve gezinme hızını ayarlayacak kontroller vardır."
			},
			builderHTML: {
				panelHeader: "HİKAYE YAPILANDIRMASI",
				buttonSave: "KAYDET",
				buttonSettings: "Ayarlar",
				buttonShare: "Paylaş",
				buttonView: "Modu görüntüle",
				buttonItem: "Web Uygulaması öğesini açın",
				buttonHelp: "Yardım",
				buttonOrganize: "Düzenle",
				buttonAdd: "Ekle",
				buttonImport: "İçe Aktar",
				buttonImportDisabled: "Ekleri olan bir Detay Servisi kullanılırken içe aktarma kullanılamaz",
				dataEditionDisabled: "Veri düzenleme bu CSV veri kaynağında devre dışıdır",
				dataSourceWarning: "Harita Turu veri katmanı değişmiş. Detay tanımlayıcısı aynı değilse, Düzenle yoluyla sırayı ve gizli noktaları sıfırlamanız gerekir. Alanın adı farklıysa, Ayarlar\'daki veri sekmesi altından alanın ayarlarını sıfırlamalısınız.",
				organizeWarning: "Etkileşimli derleyicinin dışına eklenmiş bir veya daha fazla nokta gizli.",
				dataPicError0a: "Bu turda %NB% adet uyumsuz resim URL\'si bulunur.",
				dataPicError0b: "Bu turda %NB% adet uyumsuz resim URL\'si bulunabilir.",
				dataPicError1: "Harita Turu artık bir resim URL\'sinin şu uzantılardan biriyle bitmesini gerektirmektedir: .jp(e)g, .png, .gif veya .bmp.",
				dataPicError2: "Bu gereksinim, mevcut yayınlanmış Harita Turunuzu etkilemeyecek. Ancak, etkileşimli derleyiciyi kullanabilmek için, önce şu işlemlerden birini yaparak URL sorununu çözmeniz gerekir:",
				dataPicError3: "URL\'leri Düzenle",
				dataPicError4: "Bu desteklenmeyen resim URL\'lerinin sonuna #isImage ifadesini ekler. Sunucuların çoğu URL eklemelerini destekler. Ancak, bu işlemi bir kez yaptıktan sonra, noktalarınızda gezinerek güncellenmiş resim URL\'lerinin çalıştığından emin olmanız gerekir. Resimlerin tümü yükleniyorsa, artık Harita Turu\'nu kaydedebilirsiniz. Resimlerin bağlantısı kopuksa, Harita Turu\'nu kaydetmeyin. Bunun yerine ikinci işlemi yapmak için derleyiciyi tekrar yükleyin.",
				dataPicError5: "Turu resimlerle sınırla",
				dataPicError6: "Bu seçenek tüm URL\'lerin görüntü olarak kabul edilmesine neden olur, ancak etkileşimli derleyiciyi kullanarak video ekleyemezsiniz. Bu işlem, gelecekte video eklemeye karar vermeniz durumunda geri alınabilir.",
				dataPicError7: "Harita Turu resimlerle sınırlandı, video kullanılamaz. Bu sınırlamayı kaldırmayı seçerseniz, Harita Turu\'nu kaydetmeden önce resimlerin hala yüklendiğinden emin olun. Gerekirse ileride bu sınırlamayı tekrar devreye sokabilirsiniz.",
				dataPicError8: "Resim sınırlamasını kaldır",
				dataPicError9: "Bu URL\'ler videolara işaret ediyorsa, bu uyarıyı yoksayabilirsiniz; görüntülere işaret ediyorsa, şu iki işlemden birini yapmanız gerekir:",
				modalCancel: "İptal",
				modalApply: "Uygula",
				organizeHeader: "Turu düzenle",
				organizeGeneralCaption: "Tur noktalarını düzene sokmak için sürükle-bırak kullan",
				organizeDelete: "Sil",
				organizeHide: "Gizle",
				organizeReset: "Sırayı ve gizli noktaları sıfırla",
				addMaxPointReached: "Simge setinin izin verdiği maksimum nokta sayısına ulaştınız ve başka bir tur noktası ekleyemezsiniz.

Mevcut noktaları silerseniz, hikayeyi yeniden yüklemeniz gerekeceğini unutmayın.",
				addMaxPointReachedMobile: "Üzgünüz, izin verilen maksimum nokta sayısına ulaştınız ve bu resmi ekleyemezsiniz.",
				addClose: "Kapat",
				addHeader: "Yeni bir tur noktası ekle",
				addTabPicture: "Medya",
				addTabInformation: "Bilgi",
				addTabLocation: "Konum",
				addSelectCaption: "Resim seç veya bırak",
				addNoteVideo: "Video kullanma hakkında talimatlar için Yardım\'a başvurun",
				addSelectCaptionNoFileReader: "Resim seç",
				addChangePhoto: "Resmi ve küçük resmi değiştir",
				addPictureResolutionIntro: "Resim çözünürlüğü gerekenden daha fazla:",
				addPictureResolutionOldBrowser: "Resim çözünürlüğü gerekenden daha yüksek. %RECOMMENDED_RES% üzerinde bir çözünürlük belirterek Harita Turu deneyimini optimize edin.",
				addPictureResolutionResize: "Resim çözünürlüğünü %RESOLUTION% olarak değiştir",
				addPictureResolutionKeep: "%RESOLUTION% olan ilk çözünürlüğü koru",
				addSelectThumbnail: "Küçük resmi seç",
				addNoThumbSelected: "Hiçbir küçük resim seçilmedi",
				addThumbSelected: "Seçildi",
				addCameraSettingsHeader: "KAMERA AYARLARI",
				addThumbnailHeader: "KÜÇÜK RESİM",
				addLabelPicUrl: "Resim",
				addLabelThumbUrl: "Küçük Resim",
				addTextPlaceholderUrl: "Görüntü URL\'si girin",
				addTextPlaceholderUrl2: "YouTube sayfa URL\'si girin",
				addTextPlaceholderUrl3: "Vimeo sayfa URL\'si girin",
				addTextPlaceholderUrl4: "Video katıştırma URL\'si girin",
				addLabelVideo: "Video",
				addMediaVideoOther: "Diğer",
				addMediaVideoHelp: "URL\'yi denetleyin ve varsayılan küçük resmi alın",
				addMediaVideoHelpTooltip1: "Denetim başarılı",
				addMediaVideoHelpTooltip2: "Denetim başarısız",
				addMediaVideoHelpTooltip4: "Videoyu katıştırma seçeneğini bulun ve koddaki video URL\'sini kopyalayın",
				addLabelName: "Ad",
				addLabelDescription: "Altyazı",
				addTextPlaceholder: "Birşey yazın",
				addLocatePlaceholder: "Bir adresi veya yeri bulun",
				addPinColor: "Renk",
				addLatitude: "Enlem",
				addLongitude: "Boylam",
				addLatitudePlaceholder: "ör. 34.056",
				addLongitudePlaceholder: "ör. -117.195",
				addUploading: "Tur noktası yükleniyor",
				addSave: "Tur noktası ekle",
				addMobileUploading: "Resim yükleniyor",
				addMobileName: "Ad girin",
				addMobileNameMandatory: "Hata; ad girin.",
				addMobileError: "Üzgünüz, yanlışlık oldu",
				settingsHeader: "Hikaye ayarları",
				settingsTabLayout: "Düzen",
				settingsTabColor: "Renkler",
				settingsTabLogo: "Üstbilgi",
				settingsTabFields: "Veri",
				settingsTabExtent: "Yayılım",
				settingsTabZoom: "Yakınlaştırma Düzeyi",
				settingsLayoutExplain: "İstediğiniz yerleşimi seçin.",
				settingsLayoutProfessional: "Üç Panelli Düzen",
				settingsLayoutModern: "Entegre Düzen",
				settingsLayoutSelected: "Seçili düzen",
				settingsLayoutSelect: "Bu düzeni seç",
				settingsLayoutNote: "Video kullanan noktalarda, seçenek işaretlenmese bile döviz her zaman videonun altına yerleştirilir.",
				settingsLayoutLocBtn: "\'Bul\' düğmesi ekle",
				settingsLayoutLocBtnHelp: "Bu işlevsellik çoğu mobil cihazda ve masaüstü tarayıcıda (Internet Explorer 9) desteklenir.",
				settingsColorExplain: "Önceden tanımlı bir tema seçerek veya kendi temanızı oluşturarak görünümü değiştirin.",
				settingsLabelColor: "Üstbilgi, içerik ve altbilgi renkleri",
				settingsLogoExplain: "Üstbilgi logosunu özelleştirin. (Maksimum 250 x 50 px\'tir.).",
				settingsLogoEsri: "Esri logosu",
				settingsLogoNone: "Logo yok",
				settingsLogoCustom: "Özel logo",
				settingsLogoCustomPlaceholder: "Görüntü URL\'si",
				settingsLogoCustomTargetPlaceholder: "Tıklanabilir bağlantı",
				settingsLogoSocialExplain: "Üstbilgi üst sağ bağlantısını özelleştirin.",
				settingsLogoSocialText: "Metin",
				settingsLogoSocialLink: "Bağlantı",
				settingsLogoSocialDisabled: "Bu özellik Yönetici tarafından devre dışı bırakıldı",
				settingsDataFieldsExplain: "Fotoğraf adını, altyazısını ve renk alanlarını seçin.",
				settingsDataFieldsError: "Uygulama uygun ad, altyazı veya renk verilerini belirleyemiyor. Kullanılacak alanları burada seçin. Bu ayarlar daha sonra değiştirilebilir.",
				settingsFieldsLabelName: "Ad",
				settingsFieldsLabelDescription: "Altyazı",
				settingsFieldsLabelColor: "Renk",
				settingsFieldsReset: "Alan seçimini sıfırla",
				settingsExtentExplain: "Harita Turu ilk yayılımını aşağıdaki etkileşimli haritayla ayarlayın.",
				settingsExtentExplainBottom: "Tanımladığınız yayılım web haritanızın ilk yayılımını değiştirecek. İlk tur noktasını içermiyorsa, bu yayılımın kullanılmadığına dikkat edin. Bu durumda tur ilk noktayı merkez alarak başlar.",
				settingsExtentDateLineError: "Yayılım 180° boylam meridyeninden geçemez",
				settingsExtentDateLineError2: "Yayılımı hesaplanırken hata oluştu",
				settingsExtentDrawBtn: "Yeni bir yayılım çiz",
				settingsExtentModifyBtn: "Yayılımı düzenle",
				settingsExtentApplyBtn: "Harita Turunda Önizle",
				settingsExtentUseMainMap: "Harita Turu yayılımını kullan",
				settingsZoomExplain: "Girişten sonraki öykü noktalarının yakınlaştırmasını ayarlayın (isteğe bağlı).",
				settingsLabelZoom: "Ölçek/düzey",
				settingsZoomFirstValue: "Hiçbiri",
				settingsFieldError: "Her listeden bir alan seçin",
				dataTitle: "Barındırılan Harita Turu katmanı oluştur",
				dataExplain: "Görüntüleriniz ve tur noktalarınız için yeni bir Detay Katmanı oluşturulacak. Harita Turunuz başkalarıyla paylaşılmadıkça tur katmanı paylaşılmaz.",
				dataExplainPortal: "Bu detay için Portal for ArcGIS 10.4 gerekir. Detay Katmanını oluşturamazsanız, ArcGIS yöneticinize başvurun.",
				dataNameLbl: "Katman ismi",
				dataFolderListLbl: "Klasör",
				dataFolderListFetching: "Klasörler alınıyor ...",
				dataRootFolder: "Kök",
				dataNameError: "Detay servisi için ad girin",
				dataFolderError: "Geçerli bir klasör seçin",
				dataSrcContainsInvalidChar: "Detay servisi adı bir veya daha fazla geçersiz karakter (-, <, >, #, %, :, \", ?, &, +, / veya \) içeriyor.",
				dataSrvAlreadyExistsError: "Bu ada sahip bir servis adı kuruluşunuzda zaten var. Farklı bir ad seçin.",
				dataBtnSave: "Katman oluştur",
				dataFooterProgress: "Oluşturma sürüyor",
				dataFooterSucceed: "Oluşturma başarılı. Yükleniyor",
				dataFooterError: "Oluşturma başarısız. Tekrar deneyin",
				tabError: "Tüm sekmelerdeki hataları kontrol etin",
				introRecordBtn: "Giriş",
				introRecordActivate: "İlk noktayı giriş olarak kullanın (döner sistemde görünmez)"
			},
			addPopupJS: {
				uploadingPicture: "Resim yükleniyor",
				uploadSuccess: "Yükleme başarılı",
				uploadError: "Resim yüklenirken hata oluştu",
				uploadError2: "Detay eklenirken hata oluştu (geçersiz html etiketi)",
				notJpg: "Yüklenecek jpeg uzantılı fotoğraf seçin",
				errorNoPhoto: "Yüklenecek bir görüntü seçin",
				errorNoThumbnail: "Yüklenecek bir küçük resim seçin",
				errorInvalidPicUrl: "Geçerli resim girin. (http(s):// ile başlamalı, jpg, png, gif veya bmp ile bitmelidir.) Bu kuralı geçersiz kılmak için URL\'yi \'#isImage\' ile bitirebilirsiniz.",
				errorInvalidThumbUrl: "Geçerli bir küçük resim girin. (http(s):// ile başlar, jpg, png, gif veya bmp ile biter.)",
				errorInvalidVideoUrl: "Geçerli bir video URL\'si girin (http(s):// ile başlar)",
				errorNoName: "Bu tur noktası için ad girin",
				errorNoDescription: "Bu tur noktası için altyazı girin",
				errorNoLocation: "Bu tur noktası için konum belirleyin"
			},
			builderJS: {
				noPendingChange: "Kaydedilmemiş değişiklik yok",
				unSavedChangeSingular: "Kaydedilmemiş 1 değişiklik var",
				unSavedChangePlural: "kaydedilmemiş değişiklikler",
				shareStatus1: "Tur kaydedilmedi",
				shareStatus2: "Tur herkes ile paylaşılıyor",
				shareStatus3: "Tur kuruluş ile paylaşılıyor",
				shareStatus4: "Tur paylaşılmıyor",
				popoverDiscard: "Kaydedilmemiş değişiklerden vazgeçmek istediğinizden emin misiniz?",
				yes: "Evet",
				no: "Hayır",
				popoverLoseSave: "Görüntüleyiciyi açarsanız, kaydedilmemiş değişiklikleri kaybedeceksiniz",
				ok: "Tamam",
				popoverSaveWhenDone: "İşiniz bittiğinde kaydetmeyi unutmayın",
				closeWithPendingChange: "Eylemi onaylamak istediğinizden emin misiniz? Değişiklikleriniz kaybolacak.",
				gotIt: "Tamam",
				savingApplication: "Hikaye kaydediliyor",
				saveSuccess: "Hikaye kaydedildi",
				saveError: "Kaydetme başarısız; tekrar deneyin",
				saveError2: "Addaki veya açıklamadaki geçersiz bir html etiketi nedeniyle kaydetme başarısız oldu",
				saveError3: "Başlık boş olamaz",
				dragColorPicker: "Beni gezdirin
veya rengimi değiştirin",
				dataWarningExtent: "Web haritası yayılımının dışında verileriniz var. Bu veriler tur noktaları olarak kullanılmayacak, bunları kullanmak istiyorsanız harita yayılımını değiştirin.",
				dataWarningVisibi: "Harita Turu katmanınız geçerli web haritası yayılımında görünmüyor. Harita Turu katmanınızın %MAPSIZE% büyüklükte bir haritada görünür olduğunu doğrulayın.",
				dataWarningEdit: "Web haritasını düzenle",
				dataWarningClose: "Kapat",
				signIn: "Uygulamayı kaydetmek için",
				signInTwo: "hikayeyi kaydetmek için.",
				switchBM: "Harita Altlığını Değiştir"
			},
			organizePopupJS: {
				messageStart: "Silmeyi seçtiniz",
				messageSinglePoint: "tek tur noktası",
				messageMultiPoint: "tur noktaları",
				messagePermantRemove: "Bu işlem, veri tabanınızdan",
				messageRecord: "kaydı",
				messageRecordPlural: "kayıtları",
				messageConfirm: "kalıcı olarak silecek. Devam etmek istiyor musunuz?",
				labelButtonShow: "Göster",
				labelButtonHide: "Gizle"
			},
			picturePanelJS: {
				popoverDeleteWarningPicAndThumb: "Bu, resmi veya küçük resmi kalıcı olarak silecek",
				popoverDeleteWarningThumb: "Bu, küçük resmi kalıcı olarak silecek",
				popoverUploadingPhoto: "Resim veya küçük resim yükleniyor",
				popoverUploadingThumbnail: "Küçük resim yükleniyor",
				popoverUploadSuccessful: "Yükleme başarılı",
				popoverUploadError: "Yükleme başarısız; tekrar deneyin",
				changePicAndThumb: "Resmi değiştir",
				changeThumb: "Küçük resmi değiştir",
				selectPic: "Medyayı değiştir",
				selectThumb: "Küçük resmi değiştir",
				uploadPicAndThumb: "Uygula"
			},
			headerJS:{
				editMe: "Beni düzenle!",
				templateTitle: "Şablon başlığını ayarla",
				templateSubtitle: "Şablon altyazısını ayarla"
			},
			crossFaderJS:{
				setPicture: "Resim başlığını ayarla",
				setCaption: "Resim altyazısını ayarla"
			},
			importPopup: {
				title: "İçe Aktar",
				prevBtn: "Geri",
				nextBtn: "Sonraki"
			},
			importPopupHome: {
				header: "Resimleriniz nerede depolanıyor ?"
			},
			onlinePhotoSharingCommon: {
				pictures: "resimler",
				videos: "videolar",
				disabled: "Bu özellik Yönetici tarafından devre dışı bırakıldı",
				disabledPortal: "Bu detay, ArcGIS Data Store uygulamasının Portalda yönetilen Veri Tabanı olarak yapılandırılmış olmasını gerektirir. Portal for ArcGIS Yöneticinize başvurun.",
				header1: "Resimlerinizin herkes ile paylaşılması gerekiyor.",
				header2: "Bu içe aktarma ilk %NB1% %MEDIA% ile sınırlanacak.",
				emptyDataset: "Hata, hiçbir resim bulunamadı",
				footerImport: "İçe Aktar",
				selectAlbum: "Genel bir albüm seçin",
				selectAlbum2: "Bir albüm seçin",
				pleaseChoose: "Seçin",
				userLookup: "Ara",
				userLookingup: "Aranıyor",
				csv: "Bir CSV\'de başvuruluyor",
				advanced: "Gelişmiş seçenekler",
				advancedScratchLbl: "Yeni bir Tur başlat",
				advancedScratchTip: "Sihirbaz kullanarak kendiniz doldurabileceğiniz boş bir Tur oluşturun.",
				advancedCSVLbl: "CSV dosyasından içe Tur verileri aktarın",
				advancedCSVTip: "Tur içeriğinizi bir CSV dosyasından içe aktarın.",
				advancedCommonTip: "Görüntü ve videolarınızın zaten çevrimiçi olmasını gerektirir.",
				select: "Seçim yap",
				locUse: "Resimlerin coğrafi konumunu kullan",
				locExplain: "Resimler albümden devralınabileceği, bu da tüm fotoğrafların aynı konumda olmasına neden olabileceği için resimlerin konumunu kullanmak istemeyebilirsiniz.",
				locExplain2: "Videolar kullanıcı ayarlarından devralınabileceğinden, bu da tüm videoların aynı konumda olmasına neden olabileceğinden videoların konumunu kullanmak istemeyebilirsiniz."
			},
			viewFlickr: {
				title: "Flickr\'dan içe aktarma",
				header: "Flickr kullanıcı adınızı girin ve içe aktarılacak bir Fotoğraf Seti veya Etiket seçin.",
				userInputLbl: "Kullanıcı Adı Girin",
				signInMsg2: "Kullanıcı bulunamadı",
				selectSet: "Fotoğraf Seti Seçin",
				selectTag: "veya Etiket Seçin",
				footerImportTag: "Seçili Etiketi içe aktarın",
				footerImportSet: "Seçili Seti içe aktarın"
			},
			viewFacebook: {
				title: "Facebook içe aktarma",
				header: "Facebook Kullanıcı Hesabınız ile kimlik doğrulayın veya bir Genel Sayfa kullanın. Facebook kullanıcı kimlik doğrulaması gerektirmeyen genel bir Harita Turu oluşturmak için, yorum yapmaya izin veren ve özel kalmayı tercih eden özel albümler kullanılabilir.",
				leftHeader: "Facebook Kullanıcısı",
				rightHeader: "Facebook Sayfası",
				pageExplain: "Facebook sayfası, esrigis gibi genel bir marka/ürün veya ünlü kişiliktir. Sayfa adını sayfa URL\'sindeki ilk \'/\' karakterinden alabilirsiniz.",
				pageInputLbl: "Sayfa adı girin",
				lookupMsgError: "Sayfa bulunamadı"
			},
			viewPicasa: {
				title: "Picasa/Google+ içe aktarma",
				header: "E-posta adresinizi veya Picasa ya da Google+ hesabınızın kimliğini girin.",
				userInputLbl: "E-posta veya kimlik girin",
				signInMsg2: "Hesap bulunamadı",
				signInMsg3: "Genel albüm yok",
				howToFind: "Picasa ya da Google+ hesabı kimliği nasıl bulunur",
				howToFind2: "Herhangi bir Picasa ya da G+ sayfasının ilk ve ikinci \'/\' karakterleri arasındaki rakamları kopyalayın"
			},
			viewCSV: {
				title: "CSV içe aktarma",
				uploadBtn: "CSV dosyasını seçin veya üstüne bırakın",
				resultHeaderEmpty: "CSV boş",
				resultHeaderSuccess: "%NB_POINTS% nokta yüklendi",
				resultHasBeenLimited: "Tur başına %VAL3% nokta sınırına uymak için içe aktarma %VAL2% noktanın ilk %VAL1% noktasıyla sınırlandı",
				browserSupport: "Tarayıcınız desteklenmiyor. Bir CSV kullanmak için, tarayıcınızı yükseltmeli veya ArcGIS.com web haritası görüntüleyiciyi kullanmalısınız. (Yardım\'a bakın.)",
				errorLatLng: "Enlem ve boylam alanları bulunamadı. Olabilecek değerler, enlem için: %LAT%, boylam için: %LONG%.",
				errorFieldsExplain: "Aşağıdaki zorunlu alanlar bulunamadığından yükleme başarısız oldu",
				errorFieldsName: "Ad için olabilecek değerler: %VAL%",
				errorFieldsDesc: "Açıklama için olabilecek değerler: %VAL%",
				errorFieldsUrl: "Resim URL\'si için olabilecek değerler: %VAL%",
				errorFieldsThumb: "Küçük Resim URL\'si için olabilecek değerler: %VAL%",
				errorFields2Explain: "CSV aşağıdaki özniteliklerin katmanı için aynı öznitelikleri kullanmadığından yükleme başarısız oldu",
				errorFields2Name: "Ad - %VAL2% yerine %VAL1% kullanın",
				errorFields2Desc: "Açıklama - %VAL2% yerine %VAL1% kullanın",
				errorFields2Url: "Resim URL\'si - %VAL2% yerine %VAL1% kullanın",
				errorFields2Thumb: "Küçük Resim URL\'si - %VAL2% yerine %VAL1% kullanın",
				resultFieldsAll: "Tüm öznitelikler içe aktarıldı",
				resultFieldsNotAll: "Aşağıdaki öznitelikler, harita katmanında olmadıklarından içe aktarılmadı",
				resultFieldsNotAll2: "Aşağıdaki öznitelikler içe aktarıldı",
				footerNextBtnResult: "Web haritasına içe aktar",
				footerProgress: "İçe aktarma sürüyor",
				footerSucceed: "İçe aktarma başarılı. Yükleniyor"
			},
			viewYoutube: {
				title: "YouTube içe aktarma",
				header: "Herkesle paylaşılan videolar bulmak için bir YouTube kullanıcı adı girin.",
				pageInputLbl: "YouTube kullanıcı adı girin",
				lookupMsgError: "Kullanıcı bulunamadı",
				howToFind: "YouTube kullanıcı adı bulma",
				howToFind2: "Kullanıcı adı bu videoların altında gösterilir",
				found: "Bulundu",
				noData: "Hiçbir genel video bulunamadı"
			},
			viewGeoTag: {
				title: "Görüntülerinizi/videolarınızı seçin ve bulun",
				header: "İçe aktarmak istediğiniz resimleri bulmak için resimlerin üzerine tıklayın veya dokunun.",
				headerMore: "Görüntülerimin/videolarımın coğrafi konumları neden bulunamıyor?",
				headerExplain: "Geçerli bir coğrafi konumları varsa, resimleriniz haritada otomatik olarak bulunur ve ikinci sekmede listelenir.

Resim içe aktardığınızda, Picasa ve Flickr varsayılan olarak coğrafi konum EXIF meta verilerini saklamaz. Resimlerin coğrafi içe aktarımını ve harici bir uygulama tarafından kullanılmasını etkinleştirmek için Picasa/Flickr gizlilik ayarlarını işaretleyin. EXIF coğrafi konumunun kullanılması için mevcut resimlerinizi Flickr\'a/Picasa\'ya tekrar içe aktarmanız gerekebilir.

Facebook\'ta her resme gitmeniz, Düzenle\'ye tıklamanız ve konumu seçmeniz gerekir.",
				leftPanelTab1: "Bulunacaklar",
				leftPanelTab2: "Bulunanlar",
				clickOrTap: "Bulmak için Haritaya tıklayın veya dokunun",
				clearLoc: "Konumları temizle",
				clickDrop: "İçe aktarma",
				footerImport: "İçe Aktar",
				footerProgress: "İçe aktarma sürüyor",
				footerSucceed: "İçe aktarma başarılı. Yükleniyor...",
				loading: "Yükleniyor",
				error: "Resimlerin coğrafi konumunu içe aktarma başarısız oldu; coğrafi konumlar yoksayıldı."
			},
			initPopup: {
				title: "Harita Turu Derleyicisine Hoş Geldiniz",
				prevBtn: "Geri",
				nextBtn: "Sonraki"
			},
			initPopupHome: {
				header1: "Görüntüleriniz veya videolarınız nerede?",
				header2: "Bu yardımcı, daha önce çevrimiçi olarak depoladığınız medyadan bir Harita Turu derlemenize yardımcı olacak veya bunları ArcGIS Online for Organizations hesabınıza içe aktaracak.",
				title1: "Zaten çevirimiçi",
				title2: "Görüntülerimi yüklemem gerekiyor",
				hostedFSTooltip: "Görüntülerinizi yükleyin ve Harita Turu katmanı ile bunları saklayın (video desteklenmez).",
				hostedFsNA: "Yayıncı veya barındırılan Detay Katmanı yayınlama ayrıcalığına sahip başka bir rol sahibi olmalısınız. ArcGIS yöneticinize başvurun.",
				hostedFsNA2: "Yalnızca ArcGIS Online aboneliğiyle kullanılabilir. Ücretsiz deneme sürümüne kaydolun",
				footer1: "İşiniz bittiğinde, Harita Turunuzu uygulama öğesi sayfasından izleyici kitlenizle paylaşmayı unutmayın.",
				footer3: "CSV şablonunu indir",
				footer4: "İnmezse \"Farklı Kaydet\" kullan",
				footer4bis: "İndirme başlamazsa sağ tıklayıp \"Farklı Kaydet\" seçeneğini kullanın",
				footer5: "Daha fazla bilgi",
				footerProgress: "Oluşturma sürüyor",
				footerSucceed: "Oluşturma başarılı. Yükleniyor..."
			},
			helpPopup: {
				title: "Yardım",
				close: "Kapat",
				tab1: {
					title: "Giriş",
					div1: "Harita Turu şablonu, anlatmak istediğiniz öykü açısından ilgi uyandıracak bir fotoğraf veya medya öğesi olduğunda coğrafi bilgi sunmak için tasarlanmıştır.",
					div2: "Şablon, az sayıda yeri kullanıcıların içinde gezinebileceği numaralı bir sırada sunmanıza izin veren çekici, kullanımı kolay bir web uygulaması üretir. Şablon, akıllı telefon ve tablet gibi bir cihazdaki web tarayıcısında kullanılmak üzere tasarlanmıştır.

",
					div42: "Başka kullanıcıların oluşturmakta olduğu harita turu örneklerini görmek için, Anlatı Haritaları web sitesindeki galeriyi ziyaret edin. Bizi Twitter\'da @EsriStoryMaps adresinden izleyebilirsiniz.",
					div5: "Bize yazmanızı istiyoruz! İster bir soru sormak istiyor, ister yeni bir özellik istiyor, ister bir hata bulduğunuzu düşünüyor olun, Öykü Haritaları Kullanıcı Forumu\'nu ziyaret edin."
				},
				tab2: {
					title: "Veri",
					div1: "Bir Harita Turu derlerken göz önüne alınacak ana öğe, resimlerinizin nereye depolanacağını seçmektir. Harita Turu önemli fotoğraf paylaşma servislerinde, herhangi bir web sunucusunda veya bir detay servisinin eki olarak depolanmış resimleri kullanabilir.",
					div1a: "Desteklenen resim formatların ve videoların ayrıntıları için bu sekmenin son bölümüne bakın.",
					div2: "Etkileşimli derleyici Harita Turunuzdaki görüntüleri yönetmek için iki seçenek sunar:",
					div3: "

Flickr gibi bir fotoğraf paylaşma sitesinde depolanan görüntüler gibi zaten çevrimiçinde olan fotoğrafları veya kendi web sitenizde depolanan görüntüleri kullanabilirsiniz. Harita Turunda bu görüntülere URL\'leri yoluyla başvurulur.

Ayrıca, Harita Turunuza doğrudan bilgisayarınızdaki fotoğrafları yükleyebilirsiniz. Bu yükleme seçeneği bir ArcGIS for Organizations hesabınız olmasını ve Yayıncı veya Yönetici ayrıcalıklarına sahip olmanızı gerektirir çünkü fotoğraflarınızın ekler olarak depolandığı barındırılan bir detay servisi sizin adınıza otomatik olarak oluşturulur.

",
					div4: "Ana kullanım örnekleri şunlardır:",
					div4b: "Henüz fotoğraflarınız barındırılmıyordur ve bir ArcGIS for Organizations hesabınız vardır: Barındırılan bir detay servisi kullanmak en iyi seçeneğinizdir. Genel fotoğraf paylaşma servisleri gibi, hızlı yüklenen görüntüler oluşturmak için resimlerinizi optimize ederiz ve ArcGIS platformunun tüm yönetim ve veri yönetimi imkanlarına erişiminiz olur.",
					div5: "Bir Kuruluşa üye değilsinizdir: Resimlerinizi önce bir fotoğraf paylaşma web sitesine veya kendi web sunucunuza yüklemeniz gerekir. Derleyici, asıl konumlarında barındırılmaya devam edecek olan bu resimleri kullanmanıza yardımcı olur.",
					div6: "Resimlerinizi ekler olarak depolayan veya harici resimlere başvuran mevcut bir Detay Servisi\'ni tekrar kullanmanın yollarını arıyorsunuzdur: Aşağıdaki ayrıntılı bölüme bakın.",
					div7: "Harita Turu şablonunun önceki bir sürümünün kullanıcısısınızdır ve zaten resimlerinize ve küçük resimlerinize başvuran bir CSV\'niz vardır: Bu dosyayı içe aktarıp verilerinizi ayrıntılandırabilirsiniz. Derleyici yalnızca enlem/boylam alanlarını kullanan CSV\'leri destekler; adres tabanlı CSV\'ler web haritanız yoluyla kullanılmaya devam edebilir. (Aşağıdaki bölüme bakın.)",
					div8: "Çevrimiçi fotoğraf paylaşma servislerinden içe aktarma",
					div9: "İçe aktarma işlemi zaten barındırılmakta olan resimlere bunların URL\'lerini bir web haritası detay koleksiyonda depolayarak başvurur. Resimler ArcGIS Online\'da depolanamaz. Barındırılan resimlere erişilemiyorsa, bunlar Harita Turu\'nda kullanılamaz ve bir \'Resim kullanılamıyor\' görüntüsü görürsünüz. Fotoğraf servisi sağlayıcınıza bağlı olarak Harita Turu resimlerini adını, açıklamasını ve konumunu içe aktaramayabilir. Bu öznitelikler web haritasında depolanır ve çevrimiçi servislerde yapılan düzenlemelerin hiçbiri Harita Turuna yansımaz.",
					div10: "Resimleri bir web sunucusunda depolama",
					div11: "Resimleri kendiniz barındırmayı seçerseniz, resimlerinizin küçük resimlerini el ile oluşturmanız gerekir. Küçük resim için tam çözünürlüklü resimleri kullanmak yetersiz performansla sonuçlanır. Bu nedenle bunu sizin için yapacak çevrimiçi bir fotoğraf paylaşma servisi veya bir detay servisi kullanmanızı öneririz.",
					div12: "Mevcut bir Detay Servisi\'ni veya Shapefile\'ı kullanma",
					div13: "Herhangi bir nokta detay servisi veya shapefile bir Harita Turu veri kaynağı olarak kullanılabilir. Bu kaynağı arcgis.com Harita Görüntüleyicisi yoluyla web haritanıza bir katman olarak eklemeniz yeterlidir. Uygulama katmanınızda beklenen öznitelikleri bulursa, tüm derleyici işlevleri kullanılabilir.",
					div14: "Alan adları için olabilecek değerler şunlardır (harf büyüklüğüne duyarlıdır):",
					div151: "Ad",
					div152: "Açıklama",
					div153: "Resim",
					div154: "Küçük Resim",
					div155: "Renk ",
					div16: "Uygulama bir detay servisini kullanırken eşleşen alanlar bulamazsa, kullanılacak alanlar derleyici yoluyla yapılandırılana kadar görüntüleyici çalışmaz. Web haritasına eklenen CSV ve shapefile katmanlarının gerekli tüm alanlara sahip olması gerekir, yoksa derleyici çalışmaz.",
					div162: "Resimleri ekler olarak depolayan bir detay servisini kullanılırken yalnızca iki eki olan detaylar kullanılır. İlk ek ana resmi, ikinci ek ise küçük resmi tanımlar.",
					div17: "Ekleri olmayan detay servisleri için resim ve küçük resim alanları zorunlu, ekleri olan detay servisleri içinse isteğe bağlıdır (ancak özellikle önerilir). Serviste ekler etkinleştirilmişse, derleyici resimleri ekler olarak yüklemenize izin verir. Değilse, resmin ve küçük resmin URL\'lerini düzenleyebilirsiniz.",
					div172: "Mevcut olduğunda resim ve küçük resim alanları her zaman kullanılır ve detay servisi ekleri sorgulanmaz.",
					div173: "Örnek CSV\'ler ve shapefile\'lar şuradan indirilebilir:",
					div18: "CSV\'den veya shapefile\'dan barındırılan bir Detay Servisi oluşturma",
					div19: "CSV veya shapefile dosyasından barındırılan bir detay servisi oluşturduğunuzda, ekler varsayılan olarak etkinleştirilmez. Bunları etkinleştirmek için detay servisinin sayfasını açıp katman bölümündeki küçük oka tıklarsanız, bu seçeneği görürsünüz. Harita Turu öznitelikler yoluyla başvurduğunuz resimleri ve küçük resimleri kullanmaya devam eder. Resimlerinizi detay servisi ekleri olarak karşıya yüklemek isterseniz, resim panelindeki iki düğme (\"Resmi Değiştir\" ve \"Küçük Resmi Değiştir\") yoluyla bunu yapabilirsiniz.",
					div20: "Desteklenen resim formatları ve videolar",
					div21: "Desteklenen resim formatları şunlardır: .jpg, .jpeg, .png, .gif ve .bmp. Medyanız bu uzantıyla bitmiyorsa, Harita Turu bunu, bir detay servisi kullandığı durumlar dışında video olarak kabul eder (aşağıya bakın).",
					div22: "Harita Turu şablonu bir video oynatıcısı içermez, bu yüzden favori video barındırma servisinizin sağladığı harici video oynatıcısını kullanmanız gerekir. (Videoyu katıştırma seçeneğini bulun ve verili koddaki URL\'yi kopyalayın.) Videoyu kendiniz barındırmak isterseniz, Video.js gibi bir video oynatıcı içeren bir HTML sayfası oluşturabilirsiniz.",
					div23: "Ekleri olan detay servisleri kullanılırken etkileşimli derleyici video dahil etmek için bir iletişim kutusu sunmaz, ancak verilerinizi etkileşimli derleyicinin dışında düzenleyerek bunu yapabilirsiniz. Arcgis.com harita görüntüleyicisinde, resim alanlarını harici bir videoya işaret edecek şekilde değiştirir ve URL\'nizin sonuna özel bir parametre (#isVideo) eklerseniz, medyanızın bir video olduğu kabul edilir.",
					div24: "İki geçerli resim ekiniz olması gerektiğine, aksi halde noktanın kullanılamayacağına dikkat edin. Resim ve küçük resim alanları olmadan, detay servisi ekleri kullanılırken video kullanmak mümkün değildir."
				},
				tab3: {
					title: "Özelleştirme",
					div1: "Derleyici, üst paneldeki AYARLAR düğmesi ile erişilebilen birkaç özelleştirme seçeneği sunar. Beklediğiniz seçeneği bulamazsanız, web sunucunuza kurabileceğiniz ve ihtiyaçlarınıza uyacak şekilde geliştirebileceğiniz indirilebilir bir sürümünü de sağlıyoruz.",
					div2: "Şunlar olmadıkça barındırılan sürümü kullanmanızı öneririz:",
					div3: "
Üstbilgi arka plan görüntüsünü kullanma gibi istediğiniz bir kullanıcı arayüzü özelleştirme olanağı sunmuyor.

Bir geliştiricisiniz ve uygulamayı geliştirmek istiyorsunuz.
",
					div4: "İndirilebilen sürüm bir web haritası veya bir web haritalama uygulaması tanımlayıcısı yoluyla yapılandırılabilir. Ana kullanım örnekleri şunlardır:",
					div41: "Harita turunuzu barındırmalı ortamdaki etkileşimli derleyiciyi kullanarak derliyor ve şablonu web haritalama uygulaması tanımlayıcısıyla yapılandırıyorsunuz. Etkileşimli derleyici ile tanımladığınız ayarlar uygulanır.",
					div42: "Web haritanızı etkileşimli derleyici dışında derliyor ve şablonu web harita tanımlayıcısı ile yapılandırıyorsunuz. Şablonun nasıl yapılandırılacağını öğrenmek için belgeleri okumanız gerekir.",
					div43: "Etkileşimli derleyicinin, 10. sürümden daha eski Internet Explorer gibi tarayıcılarda bazı teknik kısıtlamalar olmak kaydıyla  indirilebilir bir sürümünün bulunduğunu unutmayın.",
					div5: "Şablonun en son sürümünü indirmek ve nasıl kullanılacağı hakkında daha fazla bilgi almak için GitHub proje sayfasını ziyaret edin."
				},
				tab4: {
					title: "İpuçları",
					div0: "Desteklenen tarayıcılar",
					div0a: "Harita Turu görüntüleyicisi IE8+\'da desteklenmektedir. Etkileşimli derleyici IE9+\'da desteklenmektedir. Derleyiciyi tüm tarayıcılarda aktif olarak test ediyoruz ancak güçlüklerle karşılaşırsanız, Chrome\'u kullanmanızı öneririz.",
					div0b: "Bazı güçlüklerle karşılaşırsanız, bize bildirin. Bu arada, Harita Turunuzu CSV şablonunu kullanarak derleyerek derleyici arayüzüyle etkileşiminizi en aza indirmiş olursunuz.",
					div1: "Resimler",
					div2: "Dikey yönlendirme yerine yatay yönlendirme kullanan fotoğrafları öneriyoruz. 4:3 en boy oranı olan fotoğraflar en uygun olanlarıdır. Dikey yönlendirmeli görüntüler kullanılabilir, ancak iPad gibi küçük ekranlarda fotoğrafın büyük bir kısmı altyazı ile örtülebilir. (Metin, boylamasına gösterildiğinde enlemesine gösterildiğinden daha fazla yer kaplamaktadır.) Harita Turunda farklı boylarda, şekillerde ve yönlendirmelerde görüntüler kullanılabilirse de tüm görüntülerde aynı boyutu ve şekli kullanmayı öneriyoruz. Bu şekilde, turda gezerken kullanıcının dikkati farklı boyda görüntüler nedeniyle dağılmaz.",
					div2a: "Ana resimlerde maksimum 1000 piksel genişlik x 750 piksel yükseklik, küçük resimlerde 140x93 boyut öneriyoruz.",
					div3: "Altyazı metninizi HTML etiketleriyle formatlama",
					div4: "Üstbilgi ve resim başlığı/altyazısı, formatlama ve bağlantılar için HTML etiketleri içerebilir. Örneğin, şu kod sarı bir bağlantı eklemektedir:",
					div4a: "Turunuz için uygun altyazı yazın",
					div4b: "Turunuz için ilgi çekici bir altyazı yazmaya vakit ayırın. Altyazı insanları turunuza çekmenin ve onlara turda neler keşfedeceklerini anlatmanın iyi bir yoludur. Ayrıca, izleyici kitlenize turun yapıldığı eyalet veya ülkeyi söylemek için de uygun yerdir. Örneğin, insanların turunuzun yapıldığı şehri veya kasabayı bildiklerini varsaymayın. Altyazınız, ayrıca, bağlantı gibi HTML etiketleriyle de formatlanabilir. Yalnızca altyazı çok uzun olmamalıdır. Daha küçük tarayıcı pencerelerinde veya iPad\'de tam olarak ekrana sığmayabilir ve kırpılabilir. İyi bir altyazı düşünemiyorsanız, altyazıyı boş bırakın.",
					div5: "Katmanları Destekleme",
					div6: "Harita Turuna içerik sağlamak için destekleyici ilave katmanlar ekleyebilirsiniz. Bu katmanlar, bir inceleme alanı, tur noktalarınızı birbirine bağlayan bir yaya veya taşıt yolu gibi Harita Turu noktalarına ek olarak haritanın göstermesini istediğiniz diğer coğrafi detayları da içerebilir. Harita Turu şablonu bu destekleyici ilave katmanları web haritasında belirttiğiniz simgeleri kullanarak görüntüler, ancak açılan pencereler kullanılamaz.",
					div7: "Turunuz kısa ve çekici olsun",
					div8: "Tur başına 99 noktalık bir sınırlama vardır. Çoğu Harita Turu tabii ki bundan önemli ölçüde daha kısa olacaktır. İzleyici kitlenizin bir sürü tur noktasını adım adım gezmesini beklemeyin. Konunuz size çok ilginç gelebilir, ancak izleyicinizin de çok ilginç bulacağını varsaymayın!",
					div10: "Katıştırma modu",
					div11: "Şablonu bir iframe yoluyla başka bir web sitesine katıştırmak istiyorsanız, URL\'nin sonuna isteğe bağlı \"&embed\" parametresini eklemek üstbilgiyi sayfadan çıkarır. Bu mod, ayrıca, yapılandırma dosyası yoluyla indirilebilir sürümde de ayarlanabilir.",
					div12: "Harita turunuzun kolay tepki veren dokunmatik küçük ekran yerleşimine geçmesine neden olacak dar bir iFrame genişliği kullanmayın. Bunun amacı kullanım kolaylığını artırmaktır. Bir harita turunuzu bir sayfaya katıştırırken, kullanıcıların turu tam ekranda başlatabilmesi için daima katıştırılmış turun yanına yine de bir bağlantı koymanızı öneririz."
				},
				tab5: {
					title: "Yayınlama",
					div1: "İşiniz bittiğinde Harita Turunuzu PAYLAŞ düğmesiyle veya ArcGIS Online\'daki uygulama öğesi sayfası üzerinden izleyici kitlenizle paylaşmayı unutmayın.",
					div2a: "Turu derleyici üzerinden paylaşma",
					div2b: "PAYLAŞ düğmesi uygulamayı ve web haritası öğelerini günceller. Tur verileriniz bir Detay Servisi öğesinde depolanıyorsa, o da güncellenir. ArcGIS.com harita görüntüleyici yoluyla başka katmanlar eklediyseniz, bunlar güncellenmez. Bu, Tur\'un beklediğiniz gibi paylaşılmamasıyla sonuçlanabilir. Gerekli (veya daha fazla) ayrıcalıklara zaten sahip olan öğeler güncellenmez.",
					div2c: "Turu ArcGIS Online yoluyla paylaşma",
					div2d: "Uygulamayı ArcGIS Online sitesi üzerinden paylaştığınızda, sizden gerekirse aynı şekilde paylaşılmayan bağımlı kaynakları (web haritası, detay servisi, dekorasyon katmanı) güncellemenizi ister. Harita Turu herkese açıksa ve kaynaklarınızdan biri kitlenizle paylaşılmıyorsa, kullanıcılar ArcGIS Online oturum açma sayfasına yönlendirilir.",
					div3t: "Detay Servisi güvenliği",
					div3a: "Harita Turu derleyicisi ile oluşturulmuş barındırılan bir detay servisi kullanıyorsanız, uygulama sizin için servis güvenliğini yönetir ve servisi herkesle paylaşsanız bile düzenleme ayrıcalıklarına sahip tek kişi olmayı sürdürürsünüz.",
					div3t2: "Turunuzu izleyici kitlenizle paylaşmadan önce",
					div3: "Turunuzun ArcGIS.com hesabınızla oturum açmadığınızda da düzgün çalıştığından emin olun. Kullanacağınız URL izleyiciyi bir oturum açma sayfasına veya derleyici moduna yönlendirmemelidir.",
					div4: "Turunuzun yatay yönlendirmede tutulan bir iPad\'de nasıl göründüğüne bakmak, bu popüler cihazda düzgün göründüğünden emin olmak için iyi bir fikirdir. Bu, altyazılarınızın resimleri çok fazla örtmediğinden emin olmanıza yardımcı olabilir. Ayrıca, altyazınızın ekrana sığıp sığmadığını ve kırpılmasına neden olacak kadar uzun olup olmadığını görmenize izin verir.",
					div5a: "Arama için öneri",
					div5b: "İnsanların ArcGIS Online\'da arama yaptıklarında Harita Turunuzu bulmasına yardımcı olmak için harita turunuzun uygulama öğesi sayfasına (web haritanızın öğe sayfasına değil) \'story map\' etiketini, bunun yanı sıra da turun yapıldığı eyaletin veya ilin adı, ABD dışındaysa ülkenin adı ve \'public art\', \'tourist guide\' veya \'historic places\' gibi tema etiketlerini eklemenizi öneririz. Bu etiketler, ayrıca, Esri\'de bize de galerilerimizde gösterebileceğimiz ve sosyal medyada tanıtabileceğimiz güzel yeni tur örnekleri bulmamız için yardımcı olur. Ayrıca, uygulama öğesi sayfanıza turun küçük bir ekran resmi veya içindeki resimlerden biri gibi hoş duran bir küçük resim grafiği yüklemenizi de öneririz. Harita turunuz bir ArcGIS Online galerisine eklenirse, otomatik olarak bu resim kullanılır."
				}
			},
			share: {
				firstSaveTitle: "Tur kaydedildi",
				manageStory: "Hikayenizi yönetin",
				manageStoryA1: "İpucu: Hikayenizdeki hataları denetlemek için %LINK1% öğesini kullanabilir ve bileşenlerinin paylaşılma durumunu değiştirebilirsiniz. Hikayelerim de sosyal ağlarda paylaşılan hikayenizi daha iyi görüntülemenize yardım edebilir. Hikayelerim özelliğinin diğer yararlı işlevleri hakkında şuradan daha fazla bilgi edinebilirsiniz: %LINK2%.",
				manageStoryA1V1: "Hikayelerim",
				manageStoryA1V2: "blog gönderileri",
				shareTitle: "Turunuzu Paylaşın",
				sharePrivateHeader: "Turunuz paylaşılmıyor, paylaşmak ister misiniz?",
				sharePrivateBtn1: "Herkesle paylaş",
				sharePrivateBtn2: "Kuruluşumla Paylaş",
				sharePrivateProgress: "Paylaşma sürüyor...",
				sharePrivateErr: "Paylaşma başarısız, tekrar deneyin veya",
				sharePrivateOk: "Paylaşma güncellendi, yükleniyor...",
				sharePreviewAsUser: "Önizleme",
				shareHeader1: "Turunuza herkes erişebilir.",
				shareHeader2: "Turunuza kuruluşunuzun üyeleri erişebilir. (Oturum açılması gerekir.)",
				shareLinkHeader: "Turunuzu Paylaşın",
				shareLinkOpen: "AÇ",
				shareA1: "uygulama öğesi sayfasındaki %SHAREIMG% öğesini kullanın. Ayrıca, web haritasını paylaşmayı kaldırmak isterseniz, web haritası öğe sayfasını kullanın.",
				shareWarning: "%WITH% ile paylaşma devre dışı bırakıldı çünkü web haritasının sahibi değilsiniz.",
				shareWarningWith1: "genel ile",
				shareWarningWith2: "genel ve Kuruluş ile"
			},
			locator: {
				error: "Konum kullanılamıyor"
			},
			saveErrorSocial: {
				title: "Sosyal medya paylaşma güncellemesi",
				panel1: "Hikayenizin sosyal medyadaki görünümü iyileştirildi, ancak ArcGIS web uygulaması öğenizin başlığı hikaye başlığınızla aynı değil.",
				panel1tooltip: "Bir başlık, özet ve küçük resim tanımlandıktan sonra hikayeniz şöyle görüntülenir:",
				panel2:	"Sosyal medyada hangi başlığı kullanmak istersiniz?",
				panel2q1: "Hikaye başlığı (önerilen)",
				panel2q1tooltip: "Bu seçeneği tercih ettiğinizde, öğenizin başlığı hikaye başlığınızla eşleşecek biçimde değiştirilir ve oluşturucudaki ilave değişiklikler senkronize edilir.",
				panel2q2: "Öğe başlığı",
				panel3: "Hikayenizin sosyal medyada görüntülenme biçimini daha da iyileştirmek için ${MYSTORIES} kullanarak bir özet ve küçük resim ekleyin.",
				panel4: "Bu hikaye için beni bir daha uyarma",
				mystories: "Hikayelerim",
				btnSave: "Kaydet"
			}
        }
    })
);


text:
import React, { PureComponent } from 'react';
import Cookies from 'universal-cookie'
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import { css, descendent, media } from '../styles/jss';
import { closeModal } from '../actions/modals';
import { closePromoAlert } from '../actions/gui';

export function mapStateToProps() {
  return {};
}

const promoAlertStyle = css(
  {
    position: 'fixed',
    bottom: '10%',
    right: '5%',
    // margin: 'auto',
    // transform: 'translateX(50%) translateY(-50%)',
    backgroundColor: 'rgb(0, 0, 0, 0.9)',
    padding: '48px',
    maxWidth: '30rem',
    zIndex: '9999',
    // Optional background image
    // background: 'url(/static/images/alerts/promo-alert-bg.jpg) no-repeat center center',
    // backgroundSize: 'cover',
    // paddingTop: '176px',
  },

  descendent('h2,p,a.nothanks', {
    color: 'white',
  }),

  descendent('h2', {
    fontSize: '1.5rem',
    lineHeight: '1',
  }),

  descendent('p', {
    fontSize: '0.875rem',
  }),

  descendent('.actions', {
    textAlign: 'center',
    marginTop: '2rem',
  }),

  descendent('button', {
    width: '100%',
    marginBottom: '1rem',
    height: '3.75rem',
    lineHeight: '3.75rem',
    paddingRight: '1.875rem',
    paddingLeft: '1.875rem',
    fontSize: '0.875rem',
    color: 'rgb(255, 255, 255)',
    backgroundColor: 'rgb(0, 209, 0)',
    borderRadius: '0.3125rem',
    borderWidth: '1px',
    borderStyle: 'solid',
    borderColor: 'rgb(0, 209, 0)',
    borderImage: 'initial',
    transition: 'background-color 0.2s cubic-bezier(0.23, 1, 0.32, 1) 0s, border-color 0.2s cubic-bezier(0.23, 1, 0.32, 1) 0s, color 0.2s cubic-bezier(0.23, 1, 0.32, 1) 0s, width 0.2s cubic-bezier(0.23, 1, 0.32, 1) 0s',
  }),

  descendent('button:hover, button:focus, button:active', {
    color: 'rgb(255, 255, 255)',
    backgroundColor: 'rgb(0, 177, 0)',
    borderColor: 'rgb(0, 177, 0)',
  }),

  media('screen and (max-width: 30rem)', {
    overflow: 'auto',
    width: '100vw',
    height: '100vh',
    maxWidth: 'none',
  }),
)

class PromoAlert extends PureComponent {

  static propTypes = {
    dispatch: PropTypes.func.isRequired,
    url: PropTypes.string.isRequired,
    cookies: PropTypes.object,
  };

  static defaultProps = {
    cookies: new Cookies('th-ello'),
  };

  onClickAccept = () => {
    const win = window.open(this.props.url, '_blank');
    win.focus();
    this.closeModalAndAlert();
  };

  onClickClose = (e) => {
    e.preventDefault();
    this.props.cookies.set('hidePromoAlert', 'true', { path: '/' });
    this.closeModalAndAlert();
  };

  closeModalAndAlert = () => {
    const { dispatch } = this.props;
    dispatch(closePromoAlert());
    this.forceUpdate();
    dispatch(closeModal());
  };

  render() {
    if (this.props.cookies.get('hidePromoAlert') === 'true') {
      return null
    }
    return (

Got game dev skills?

          Calling all gamers! Our friends at Talenthouse want to hear from you.
          Help build a potential work opportunity for creative people like you in the game dev landscape.

          <button onClick={this.onClickAccept}>
            TAKE OUR SURVEY
          </button>

            No, but thanks

    );
  }
}

export default connect(mapStateToProps)(PromoAlert);