text:
This document is the API specification for the Apache Jakarta Commons Codec Library, version 1.3.

This library requires a JRE version of 1.2.2 or greater.
The hypertext links originating from this document point to Sun's version 1.3 API as the 1.2.2 API documentation
is no longer on-line.

redpajama_set_name: RedPajamaGithub


text:
Playing around with the Rpi camera

Aim is to create a modular system with different image processing algorithms.

On the RaspberryPi side there is a server module which is continously capturing and sending raw image data to all connected clients.

A client (might be a GUI or motion detection algorithm) can connect to the server and perform whatever operations need to be performed on
the image data and make decisions based on the result.

This is a toy project of mine so I won't be taking it too seriously in terms of code quality or functionality.

The screenshot below shows the system highlighting a TV in an otherwise semi-dark environment
![image](https://user-images.githubusercontent.com/17113438/39840390-8d68bbfe-53df-11e8-92e6-bb4777ee51d5.png)


text:
require 'test_helper'

class ConfigurationTest < MiniTest::Test
  def teardown
    super
    EmlToPdfExt.reset_configuration!
  end

  def test_basic_configuration
    example_to_label = "Who to:"
    EmlToPdfExt.configure do |config|
      config.to_label = example_to_label
    end
    assert_equal example_to_label, EmlToPdfExt.configuration.to_label
  end

  def test_output_with_config
    # French setup
    EmlToPdfExt.configure do |config|
      config.from_label = "De:"
      config.to_label = "À:"
      config.cc_label = "Cc:"
      config.date_label = "Date:"
      config.date_format do |date|
        date.strftime("%Y")
      end
    end
    table = metadata_table
    assert_equal "De:", table.at_css("tr:nth-child(1) td:nth-child(1)").text
    assert_equal "À:", table.at_css("tr:nth-child(2) td:nth-child(1)").text
    assert_equal "Cc:", table.at_css("tr:nth-child(3) td:nth-child(1)").text
    assert_equal "Date:", table.at_css("tr:nth-child(4) td:nth-child(1)").text
    assert_equal "1970", table.at_css("tr:nth-child(4) td:nth-child(2)").text
  end

  def test_no_output_with_config
    EmlToPdfExt.configure do |config|
      config.metadata_visible = false
    end

    table = metadata_table

    assert_nil table
  end

  def metadata_table
    email = EmlToPdfExt::Email.new(email_fixture_path("latin1"))
    doc = Nokogiri::HTML(email.to_html)
    doc.at_css(".email-metadata table")
  end
end


text:
(function(){

glyph.Particle = function( context )
	{
		this.context = context;

		this.life = 0;
		this.life_offset = 0;
		this.lifespan = null;
		this.life_start = Date.now();

		this.position = { x: 0, y: 0 };
		this.offset = { x: 0, y: 0 };
		this.velocity = { x: 0, y: 0 };
		this.acceleration = { x: 0, y: 0 };

		this.opacity = 1;
		this.opacity_end = null;
		this.opacity_start = null;

		this.scale = 1;
		this.scale_end = null;
		this.scale_start = null;

		this.radius = 1;
		this.image = null;

		this.colour = { r: 255, g: 255, b: 255 };
		this.colour_end = null;
		this.colour_start = null;

		this.rotation = 0;
		this.rotation_vel = 0;
		this.rotation_accel = 0;

		this.callback = null;

		this.draw = function( frameTime )
			{
				this.context.save();

				var pX = this.position.x + this.offset.x;
				var pY = this.position.y + this.offset.y;

				var sX = 0;
				var sY = 0;

				if ( this.image )
				{
					sX = ( this.image.width * this.scale ) / 2;
					sY = ( this.image.height * this.scale ) / 2;

					pX -= sX;
					pY -= sY;
				}

				this.context.translate( pX, pY );

				if ( this.image && this.rotation )
				{
					this.context.translate( sX, sY );
					this.context.rotate( Math.PI / 180 * this.rotation );
					this.context.translate( -1 * sX, -1 * sY );
				}

				if ( this.scale != 1 )
					this.context.scale( this.scale, this.scale );

				if( this.image )
				{
					this.context.globalAlpha = this.opacity;
					this.context.drawImage( this.image, 0, 0 );
				}
				else
				{
					this.context.beginPath();

					this.context.arc( 0, 0, this.radius * this.scale, 0, 2 * Math.PI, false );
					this.context.fillStyle = 'rgba( ' + this.colour.r + ', ' + this.colour.g + ', ' + this.colour.b + ', ' + this.opacity + ')';

					this.context.closePath();
					this.context.fill();
				}

				this.context.restore();
			};

		this.update = function( frameTime )
			{
				this.life = Date.now() - this.life_start + this.life_offset;

				if ( this.lifespan !== null )
				{
					if ( this.life > this.lifespan )
						return glyph.particle.delete( this );

					var lifeMul = this.life / this.lifespan;

					if ( this.scale_end !== null )
					{
						if ( !this.scale_start )
							this.scale_start = this.scale;

						this.scale = glyph.lerp( this.scale_start, this.scale_end, lifeMul );
					}

					if ( this.opacity_end !== null )
					{
						if ( !this.opacity_start )
							this.opacity_start = this.opacity;

						this.opacity = glyph.lerp( this.opacity_start, this.opacity_end, lifeMul );
					}

					if ( this.colour_end !== null )
					{
						if ( !this.colour_start )
							this.colour_start = glyph.copy( this.colour );

						this.colour.r = glyph.round( glyph.lerp( this.colour_start.r, this.colour_end.r, lifeMul ) );
						this.colour.g = glyph.round( glyph.lerp( this.colour_start.g, this.colour_end.g, lifeMul ) );
						this.colour.b = glyph.round( glyph.lerp( this.colour_start.b, this.colour_end.b, lifeMul ) );
					}
				}
				else
				{
					if ( this.position.x > this.context.canvas.width ||
						this.position.y > this.context.canvas.height ||
						this.position.x < 0 || this.position.y < 0 )
							return glyph.particle.delete( this );
				}

				if ( this.acceleration )
				{
					this.velocity.x += this.acceleration.x * frameTime;
					this.velocity.y += this.acceleration.y * frameTime;
				}

				if ( this.velocity )
				{
					this.position.x += this.velocity.x * frameTime;
					this.position.y += this.velocity.y * frameTime;
				}

				if ( this.rotation )
				{
					this.rotation_vel += this.rotation_accel * frameTime;
					this.rotation += this.rotation_vel * frameTime;
				}

				if ( this.callback )
					this.callback( this, frameTime );
			};
	};

var particles = [];
var contexts = [];
var lastUpdate = Date.now();
var lastRequest = false;
function draw()
{
	contexts.forEach( function( context )
		{
			context.clearRect( 0, 0, context.canvas.width, context.canvas.height );
		});

	var frameTime = ( Date.now() - lastUpdate ) / 1000;
	lastUpdate = Date.now();

	particles.forEach( function( p ) { p.update( frameTime ); } );
	particles.forEach( function( p ) { p.draw( frameTime ); } );

	lastRequest = requestAnimationFrame( draw );
}

glyph.particle = {};

glyph.particle.delete = function( p )
	{
		for ( var i = 0; i < particles.length; i++ )
			if ( particles[i] === p )
				particles.splice( i, 1 );
	};

glyph.particle.create = function( context )
	{
		var particle = new glyph.Particle( context );
		return particle;
	};

var imageCache = {};
glyph.particle.emit = function( p )
	{
		// if we haven't had focus for 5 seconds, don't emit any new particles
		// or we'll end up getting a huuuuuuge backlog once we get focus again
		if ( Date.now() > lastUpdate + 5 * 1000 )
			return;

		if ( glyph.isArray( p.colour ) )
			p.colour = { r: p.colour[0], g: p.colour[1], b: p.colour[2] };

		if ( glyph.isArray( p.colour_end ) )
			p.colour_end = { r: p.colour_end[0], g: p.colour_end[1], b: p.colour_end[2] };

		if ( glyph.isArray( p.position ) )
			p.position = { r: p.position[0], g: p.position[1], b: p.position[2] };

		if ( glyph.isArray( p.offset ) )
			p.offset = { r: p.offset[0], g: p.offset[1], b: p.offset[2] };

		if ( glyph.isArray( p.velocity ) )
			p.velocity = { r: p.velocity[0], g: p.velocity[1], b: p.velocity[2] };

		if ( glyph.isArray( p.acceleration ) )
			p.acceleration = { r: p.acceleration[0], g: p.acceleration[1], b: p.acceleration[2] };

		if ( typeof p.image == 'string' )
		{
			if ( imageCache[ p.image ] )
				p.image = imageCache[ p.image ];
			else
			{
				var img = new Image();
				img.src = p.image;
				imageCache[ p.image ] = img;
				p.image = img;
				img.onload = function() { particles.push( p ); };
				return;
			}
		}

		particles.push( p );
	};

var particleInit = false;
glyph.particle.init = function( canvas )
	{
		if ( !particleInit )
		{
			lastRequest = requestAnimationFrame( draw );
			particleInit = true;
		}

		var context = canvas.getContext( '2d' );
		context.canvas = canvas;
		contexts.push( context );
		return context;
	};

glyph.event( window, 'focus', function()
	{
		// sometimes chrome seems to cancel requests
		// if the tab's been out of focus for a while
		if ( particleInit )
		{
			cancelAnimationFrame( lastRequest );
			lastRequest = requestAnimationFrame( draw );
		}
	});

}());


text:
package org.apache.kafka.common.requests;

import org.apache.kafka.common.TopicPartition;
import org.apache.kafka.common.protocol.ApiKeys;
import org.apache.kafka.common.protocol.Errors;
import org.apache.kafka.common.protocol.types.Field;
import org.apache.kafka.common.protocol.types.Schema;
import org.apache.kafka.common.protocol.types.Struct;
import org.apache.kafka.common.utils.CollectionUtils;

import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;

import static org.apache.kafka.common.protocol.CommonFields.CURRENT_LEADER_EPOCH;
import static org.apache.kafka.common.protocol.CommonFields.PARTITION_ID;
import static org.apache.kafka.common.protocol.CommonFields.TOPIC_NAME;

public class ListOffsetRequest extends AbstractRequest {
    public static final long EARLIEST_TIMESTAMP = -2L;
    public static final long LATEST_TIMESTAMP = -1L;

    public static final int CONSUMER_REPLICA_ID = -1;
    public static final int DEBUGGING_REPLICA_ID = -2;

    // top level fields
    private static final Field.Int32 REPLICA_ID = new Field.Int32("replica_id",
            "Broker id of the follower. For normal consumers, use -1.");
    private static final Field.Int8 ISOLATION_LEVEL = new Field.Int8("isolation_level",
            "This setting controls the visibility of transactional records. " +
                    "Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED " +
                    "(isolation_level = 1), non-transactional and COMMITTED transactional records are visible. " +
                    "To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current " +
                    "LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the " +
                    "result, which allows consumers to discard ABORTED transactional records");
    private static final Field.ComplexArray TOPICS = new Field.ComplexArray("topics",
            "Topics to list offsets.");

    // topic level fields
    private static final Field.ComplexArray PARTITIONS = new Field.ComplexArray("partitions",
            "Partitions to list offsets.");

    // partition level fields
    private static final Field.Int64 TIMESTAMP = new Field.Int64("timestamp",
            "The target timestamp for the partition.");
    private static final Field.Int32 MAX_NUM_OFFSETS = new Field.Int32("max_num_offsets",
            "Maximum offsets to return.");

    private static final Field PARTITIONS_V0 = PARTITIONS.withFields(
            PARTITION_ID,
            TIMESTAMP,
            MAX_NUM_OFFSETS);

    private static final Field TOPICS_V0 = TOPICS.withFields(
            TOPIC_NAME,
            PARTITIONS_V0);

    private static final Schema LIST_OFFSET_REQUEST_V0 = new Schema(
            REPLICA_ID,
            TOPICS_V0);

    // V1 removes max_num_offsets
    private static final Field PARTITIONS_V1 = PARTITIONS.withFields(
            PARTITION_ID,
            TIMESTAMP);

    private static final Field TOPICS_V1 = TOPICS.withFields(
            TOPIC_NAME,
            PARTITIONS_V1);

    private static final Schema LIST_OFFSET_REQUEST_V1 = new Schema(
            REPLICA_ID,
            TOPICS_V1);

    // V2 adds a field for the isolation level
    private static final Schema LIST_OFFSET_REQUEST_V2 = new Schema(
            REPLICA_ID,
            ISOLATION_LEVEL,
            TOPICS_V1);

    // V3 bump used to indicate that on quota violation brokers send out responses before throttling.
    private static final Schema LIST_OFFSET_REQUEST_V3 = LIST_OFFSET_REQUEST_V2;

    // V4 introduces the current leader epoch, which is used for fencing
    private static final Field PARTITIONS_V4 = PARTITIONS.withFields(
            PARTITION_ID,
            CURRENT_LEADER_EPOCH,
            TIMESTAMP);

    private static final Field TOPICS_V4 = TOPICS.withFields(
            TOPIC_NAME,
            PARTITIONS_V4);

    private static final Schema LIST_OFFSET_REQUEST_V4 = new Schema(
            REPLICA_ID,
            ISOLATION_LEVEL,
            TOPICS_V4);

    // V5 bump to include new possible error code (OFFSET_NOT_AVAILABLE)
    private static final Schema LIST_OFFSET_REQUEST_V5 = LIST_OFFSET_REQUEST_V4;

    public static Schema[] schemaVersions() {
        return new Schema[] {LIST_OFFSET_REQUEST_V0, LIST_OFFSET_REQUEST_V1, LIST_OFFSET_REQUEST_V2,
            LIST_OFFSET_REQUEST_V3, LIST_OFFSET_REQUEST_V4, LIST_OFFSET_REQUEST_V5};
    }

    private final int replicaId;
    private final IsolationLevel isolationLevel;
    private final Map<TopicPartition, PartitionData> partitionTimestamps;
    private final Set<TopicPartition> duplicatePartitions;

    public static class Builder extends AbstractRequest.Builder<ListOffsetRequest> {
        private final int replicaId;
        private final IsolationLevel isolationLevel;
        private Map<TopicPartition, PartitionData> partitionTimestamps = new HashMap<>();

        public static Builder forReplica(short allowedVersion, int replicaId) {
            return new Builder((short) 0, allowedVersion, replicaId, IsolationLevel.READ_UNCOMMITTED);
        }

        public static Builder forConsumer(boolean requireTimestamp, IsolationLevel isolationLevel) {
            short minVersion = 0;
            if (isolationLevel == IsolationLevel.READ_COMMITTED)
                minVersion = 2;
            else if (requireTimestamp)
                minVersion = 1;
            return new Builder(minVersion, ApiKeys.LIST_OFFSETS.latestVersion(), CONSUMER_REPLICA_ID, isolationLevel);
        }

        private Builder(short oldestAllowedVersion,
                        short latestAllowedVersion,
                        int replicaId,
                        IsolationLevel isolationLevel) {
            super(ApiKeys.LIST_OFFSETS, oldestAllowedVersion, latestAllowedVersion);
            this.replicaId = replicaId;
            this.isolationLevel = isolationLevel;
        }

        public Builder setTargetTimes(Map<TopicPartition, PartitionData> partitionTimestamps) {
            this.partitionTimestamps = partitionTimestamps;
            return this;
        }

        @Override
        public ListOffsetRequest build(short version) {
            return new ListOffsetRequest(replicaId, partitionTimestamps, isolationLevel, version);
        }

        @Override
        public String toString() {
            StringBuilder bld = new StringBuilder();
            bld.append("(type=ListOffsetRequest")
               .append(", replicaId=").append(replicaId);
            if (partitionTimestamps != null) {
                bld.append(", partitionTimestamps=").append(partitionTimestamps);
            }
            bld.append(", isolationLevel=").append(isolationLevel);
            bld.append(")");
            return bld.toString();
        }
    }

    public static final class PartitionData {
        public final long timestamp;
        @Deprecated
        public final int maxNumOffsets; // only supported in v0
        public final Optional<Integer> currentLeaderEpoch;

        private PartitionData(long timestamp, int maxNumOffsets, Optional<Integer> currentLeaderEpoch) {
            this.timestamp = timestamp;
            this.maxNumOffsets = maxNumOffsets;
            this.currentLeaderEpoch = currentLeaderEpoch;
        }

        @Deprecated
        public PartitionData(long timestamp, int maxNumOffsets) {
            this(timestamp, maxNumOffsets, Optional.empty());
        }

        public PartitionData(long timestamp, Optional<Integer> currentLeaderEpoch) {
            this(timestamp, 1, currentLeaderEpoch);
        }

        @Override
        public String toString() {
            StringBuilder bld = new StringBuilder();
            bld.append("{timestamp: ").append(timestamp).
                    append(", maxNumOffsets: ").append(maxNumOffsets).
                    append(", currentLeaderEpoch: ").append(currentLeaderEpoch).
                    append("}");
            return bld.toString();
        }
    }

    /**
     * Private constructor with a specified version.
     */
    @SuppressWarnings("unchecked")
    private ListOffsetRequest(int replicaId,
                              Map<TopicPartition, PartitionData> targetTimes,
                              IsolationLevel isolationLevel,
                              short version) {
        super(ApiKeys.LIST_OFFSETS, version);
        this.replicaId = replicaId;
        this.isolationLevel = isolationLevel;
        this.partitionTimestamps = targetTimes;
        this.duplicatePartitions = Collections.emptySet();
    }

    public ListOffsetRequest(Struct struct, short version) {
        super(ApiKeys.LIST_OFFSETS, version);
        Set<TopicPartition> duplicatePartitions = new HashSet<>();
        replicaId = struct.get(REPLICA_ID);
        isolationLevel = struct.hasField(ISOLATION_LEVEL) ?
                IsolationLevel.forId(struct.get(ISOLATION_LEVEL)) :
                IsolationLevel.READ_UNCOMMITTED;
        partitionTimestamps = new HashMap<>();
        for (Object topicResponseObj : struct.get(TOPICS)) {
            Struct topicResponse = (Struct) topicResponseObj;
            String topic = topicResponse.get(TOPIC_NAME);
            for (Object partitionResponseObj : topicResponse.get(PARTITIONS)) {
                Struct partitionResponse = (Struct) partitionResponseObj;
                int partition = partitionResponse.get(PARTITION_ID);
                long timestamp = partitionResponse.get(TIMESTAMP);
                TopicPartition tp = new TopicPartition(topic, partition);

                int maxNumOffsets = partitionResponse.getOrElse(MAX_NUM_OFFSETS, 1);
                Optional<Integer> currentLeaderEpoch = RequestUtils.getLeaderEpoch(partitionResponse, CURRENT_LEADER_EPOCH);
                PartitionData partitionData = new PartitionData(timestamp, maxNumOffsets, currentLeaderEpoch);
                if (partitionTimestamps.put(tp, partitionData) != null)
                    duplicatePartitions.add(tp);
            }
        }
        this.duplicatePartitions = duplicatePartitions;
    }

    @Override
    @SuppressWarnings("deprecation")
    public AbstractResponse getErrorResponse(int throttleTimeMs, Throwable e) {
        Map<TopicPartition, ListOffsetResponse.PartitionData> responseData = new HashMap<>();
        short versionId = version();

        ListOffsetResponse.PartitionData partitionError = versionId == 0 ?
                new ListOffsetResponse.PartitionData(Errors.forException(e), Collections.emptyList()) :
                new ListOffsetResponse.PartitionData(Errors.forException(e), -1L, -1L, Optional.empty());
        for (TopicPartition partition : partitionTimestamps.keySet()) {
            responseData.put(partition, partitionError);
        }

        switch (version()) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
                return new ListOffsetResponse(throttleTimeMs, responseData);
            default:
                throw new IllegalArgumentException(String.format("Version %d is not valid. Valid versions for %s are 0 to %d",
                        versionId, this.getClass().getSimpleName(), ApiKeys.LIST_OFFSETS.latestVersion()));
        }
    }

    public int replicaId() {
        return replicaId;
    }

    public IsolationLevel isolationLevel() {
        return isolationLevel;
    }

    public Map<TopicPartition, PartitionData> partitionTimestamps() {
        return partitionTimestamps;
    }

    public Set<TopicPartition> duplicatePartitions() {
        return duplicatePartitions;
    }

    public static ListOffsetRequest parse(ByteBuffer buffer, short version) {
        return new ListOffsetRequest(ApiKeys.LIST_OFFSETS.parseRequest(version, buffer), version);
    }

    @Override
    protected Struct toStruct() {
        short version = version();
        Struct struct = new Struct(ApiKeys.LIST_OFFSETS.requestSchema(version));
        Map<String, Map<Integer, PartitionData>> topicsData = CollectionUtils.groupPartitionDataByTopic(partitionTimestamps);

        struct.set(REPLICA_ID, replicaId);
        struct.setIfExists(ISOLATION_LEVEL, isolationLevel.id());

        List<Struct> topicArray = new ArrayList<>();
        for (Map.Entry<String, Map<Integer, PartitionData>> topicEntry: topicsData.entrySet()) {
            Struct topicData = struct.instance(TOPICS);
            topicData.set(TOPIC_NAME, topicEntry.getKey());
            List<Struct> partitionArray = new ArrayList<>();
            for (Map.Entry<Integer, PartitionData> partitionEntry : topicEntry.getValue().entrySet()) {
                PartitionData offsetPartitionData = partitionEntry.getValue();
                Struct partitionData = topicData.instance(PARTITIONS);
                partitionData.set(PARTITION_ID, partitionEntry.getKey());
                partitionData.set(TIMESTAMP, offsetPartitionData.timestamp);
                partitionData.setIfExists(MAX_NUM_OFFSETS, offsetPartitionData.maxNumOffsets);
                RequestUtils.setLeaderEpochIfExists(partitionData, CURRENT_LEADER_EPOCH,
                        offsetPartitionData.currentLeaderEpoch);
                partitionArray.add(partitionData);
            }
            topicData.set(PARTITIONS, partitionArray.toArray());
            topicArray.add(topicData);
        }
        struct.set(TOPICS, topicArray.toArray());
        return struct;
    }
}


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Alteridem.Engine.Commands
{
    public interface ICommandParser
    {
        void Run();
    }
}


text:
package org.fest.swing.core;

import org.junit.Test;

/**
 * Tests for {@link TypeMatcher#TypeMatcher(Class)}.
 *
 * @author Alex Ruiz
 */
public class TypeMatcher_constructorWithType_Test {
  @Test(expected = NullPointerException.class)
  public void should_throw_error_if_type_is_null() {
    new TypeMatcher(null);
  }
}


text:
<?xml version="1.0" encoding="utf-8"?>
<geo:GeodesyML gml:id="DUND00NZL" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:geo="urn:xml-gov-au:icsm:egeodesy:0.5" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <geo:siteLog gml:id="dund_20161220.log">
        <geo:formInformation>
    <geo:FormInformation gml:id="form-information">
            <geo:preparedBy>Elisabetta D'Anastasio</geo:preparedBy>
            <geo:datePrepared>2016-12-20</geo:datePrepared>
            <geo:reportType>UPDATE</geo:reportType>
            </geo:FormInformation>
        </geo:formInformation>
        <geo:siteIdentification>
            <geo:SiteIdentification gml:id="site-identification">
            <geo:siteName>Dunedin GPS</geo:siteName>
            <geo:fourCharacterID>DUND</geo:fourCharacterID>
            <geo:monumentInscription>none</geo:monumentInscription>
            <geo:iersDOMESNumber>50212M003</geo:iersDOMESNumber>
            <geo:cdpNumber>none</geo:cdpNumber>
            <geo:monumentDescription codeSpace="urn:ga-gov-au:monument-description-type">SHORT-BRACED (UNAVCO STYLE)</geo:monumentDescription>
            <geo:heightOfTheMonument>1.25</geo:heightOfTheMonument>
            <geo:monumentFoundation>FIVE STAINLESS STEEL RODS</geo:monumentFoundation>
            <geo:foundationDepth>1.8</geo:foundationDepth>
            <geo:markerDescription>TOP CENTRE OF STAINLESS BLOCK THAT</geo:markerDescription>
            <geo:dateInstalled>2005-08-12T00:00:00Z</geo:dateInstalled>
            <geo:geologicCharacteristic codeSpace="urn:ga-gov-au:geologic-characteristic-type">Mid-Miocene volcanics</geo:geologicCharacteristic>
            <geo:bedrockType>BASALTIC</geo:bedrockType>
            <geo:bedrockCondition>GOOD</geo:bedrockCondition>
            <geo:fractureSpacing></geo:fractureSpacing>
            <geo:faultZonesNearby codeSpace="urn:ga-gov-au:fault-zones-type"></geo:faultZonesNearby>
            <geo:notes></geo:notes>
            </geo:SiteIdentification>
        </geo:siteIdentification>
        <geo:siteLocation>
            <geo:SiteLocation gml:id="site-location">
            <geo:city>Dunedin</geo:city>
            <geo:state>Otago</geo:state>
            <geo:countryCodeISO codeList="http://xml.gov.au/icsm/geodesyml/codelists/country-codes-codelist.xml#GeodesyML_CountryCode" codeListValue="New Zealand" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">NZL</geo:countryCodeISO>
            <geo:tectonicPlate codeSpace="urn:ga-gov-au:plate-type">PACIFIC</geo:tectonicPlate>
            <geo:approximatePositionITRF>
                <geo:cartesianPosition>
                    <gml:Point gml:id="itrf_cartesian" srsName="EPSG:7789">
                        <gml:pos>-4388121.17 726671.05 -4556535.63</gml:pos>
                    </gml:Point>
                </geo:cartesianPosition>
                <geo:geodeticPosition>
                    <gml:Point gml:id="itrf_geodetic" srsName="EPSG:7912">
                        <gml:pos>-45.883675 170.597175 386.9</gml:pos>
                    </gml:Point>
                </geo:geodeticPosition>
            </geo:approximatePositionITRF>
            <geo:notes></geo:notes>
            </geo:SiteLocation>
        </geo:siteLocation>
        <geo:gnssReceiver>
            <geo:GnssReceiver gml:id="gnss-receiver-1">
                <geo:manufacturerSerialNumber>4435237669</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSReceiverTypeCode" codeListValue="TRIMBLE NETRS" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRIMBLE NETRS</geo:igsModelCode>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GPS</geo:satelliteSystem>
                <geo:firmwareVersion>1.03</geo:firmwareVersion>
                <geo:elevationCutoffSetting>4.0</geo:elevationCutoffSetting>
                <geo:dateInstalled>2005-08-24T00:00:00Z</geo:dateInstalled>
                <geo:dateRemoved>2006-03-10T00:00:00Z</geo:dateRemoved>
                <geo:temperatureStabilization xsi:nil="true"></geo:temperatureStabilization>
            </geo:GnssReceiver>
            <geo:dateInserted>2005-08-24T00:00:00Z</geo:dateInserted>
        </geo:gnssReceiver>
        <geo:gnssReceiver>
            <geo:GnssReceiver gml:id="gnss-receiver-2">
                <geo:notes>receiver failure</geo:notes>
                <geo:manufacturerSerialNumber>4435237669</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSReceiverTypeCode" codeListValue="TRIMBLE NETRS" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRIMBLE NETRS</geo:igsModelCode>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GPS</geo:satelliteSystem>
                <geo:firmwareVersion>1.15</geo:firmwareVersion>
                <geo:elevationCutoffSetting>4.0</geo:elevationCutoffSetting>
                <geo:dateInstalled>2006-03-10T00:00:00Z</geo:dateInstalled>
                <geo:dateRemoved>2007-02-22T00:00:00Z</geo:dateRemoved>
                <geo:temperatureStabilization xsi:nil="true"></geo:temperatureStabilization>
            </geo:GnssReceiver>
            <geo:dateInserted>2006-03-10T00:00:00Z</geo:dateInserted>
        </geo:gnssReceiver>
        <geo:gnssReceiver>
            <geo:GnssReceiver gml:id="gnss-receiver-3">
                <geo:manufacturerSerialNumber>4635120796</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSReceiverTypeCode" codeListValue="TRIMBLE NETRS" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRIMBLE NETRS</geo:igsModelCode>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GPS</geo:satelliteSystem>
                <geo:firmwareVersion>1.15</geo:firmwareVersion>
                <geo:elevationCutoffSetting>4.0</geo:elevationCutoffSetting>
                <geo:dateInstalled>2007-02-22T00:00:00Z</geo:dateInstalled>
                <geo:dateRemoved>2010-11-24T03:00:00Z</geo:dateRemoved>
                <geo:temperatureStabilization xsi:nil="true"></geo:temperatureStabilization>
            </geo:GnssReceiver>
            <geo:dateInserted>2007-02-22T00:00:00Z</geo:dateInserted>
        </geo:gnssReceiver>
        <geo:gnssReceiver>
            <geo:GnssReceiver gml:id="gnss-receiver-4">
                <geo:notes>firmware upgrade</geo:notes>
                <geo:manufacturerSerialNumber>5034K69680</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSReceiverTypeCode" codeListValue="TRIMBLE NETR9" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRIMBLE NETR9</geo:igsModelCode>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GPS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GLO</geo:satelliteSystem>
                <geo:firmwareVersion>4.17</geo:firmwareVersion>
                <geo:elevationCutoffSetting>3.0</geo:elevationCutoffSetting>
                <geo:dateInstalled>2010-11-24T23:35:00Z</geo:dateInstalled>
                <geo:dateRemoved>2015-02-26T11:13:00Z</geo:dateRemoved>
                <geo:temperatureStabilization xsi:nil="true"></geo:temperatureStabilization>
            </geo:GnssReceiver>
            <geo:dateInserted>2010-11-24T23:35:00Z</geo:dateInserted>
        </geo:gnssReceiver>
        <geo:gnssReceiver>
            <geo:GnssReceiver gml:id="gnss-receiver-5">
                <geo:manufacturerSerialNumber>5034K69680</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSReceiverTypeCode" codeListValue="TRIMBLE NETR9" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRIMBLE NETR9</geo:igsModelCode>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GPS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GLO</geo:satelliteSystem>
                <geo:firmwareVersion>4.81</geo:firmwareVersion>
                <geo:elevationCutoffSetting>0.0</geo:elevationCutoffSetting>
                <geo:dateInstalled>2015-02-26T11:14:00Z</geo:dateInstalled>
                <geo:dateRemoved>2015-03-08T22:35:00Z</geo:dateRemoved>
                <geo:temperatureStabilization xsi:nil="true"></geo:temperatureStabilization>
            </geo:GnssReceiver>
            <geo:dateInserted>2015-02-26T11:14:00Z</geo:dateInserted>
        </geo:gnssReceiver>
        <geo:gnssReceiver>
            <geo:GnssReceiver gml:id="gnss-receiver-6">
                <geo:notes>BeiDou, Galileo and QZSS tracking enabled</geo:notes>
                <geo:manufacturerSerialNumber>5034K69680</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSReceiverTypeCode" codeListValue="TRIMBLE NETR9" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRIMBLE NETR9</geo:igsModelCode>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GPS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GLO</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GAL</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">BDS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">QZSS</geo:satelliteSystem>
                <geo:firmwareVersion>4.81</geo:firmwareVersion>
                <geo:elevationCutoffSetting>0.0</geo:elevationCutoffSetting>
                <geo:dateInstalled>2015-03-08T22:35:00Z</geo:dateInstalled>
                <geo:dateRemoved>2015-05-26T01:48:00Z</geo:dateRemoved>
                <geo:temperatureStabilization xsi:nil="true"></geo:temperatureStabilization>
            </geo:GnssReceiver>
            <geo:dateInserted>2015-03-08T22:35:00Z</geo:dateInserted>
        </geo:gnssReceiver>
        <geo:gnssReceiver>
            <geo:GnssReceiver gml:id="gnss-receiver-7">
                <geo:manufacturerSerialNumber>5444R50040</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSReceiverTypeCode" codeListValue="TRIMBLE NETR9" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRIMBLE NETR9</geo:igsModelCode>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GPS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GLO</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GAL</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">BDS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">QZSS</geo:satelliteSystem>
                <geo:firmwareVersion>4.81</geo:firmwareVersion>
                <geo:elevationCutoffSetting>0.0</geo:elevationCutoffSetting>
                <geo:dateInstalled>2015-05-26T01:48:00Z</geo:dateInstalled>
                <geo:dateRemoved>2015-09-17T17:25:00Z</geo:dateRemoved>
                <geo:temperatureStabilization xsi:nil="true"></geo:temperatureStabilization>
            </geo:GnssReceiver>
            <geo:dateInserted>2015-05-26T01:48:00Z</geo:dateInserted>
        </geo:gnssReceiver>
        <geo:gnssReceiver>
            <geo:GnssReceiver gml:id="gnss-receiver-8">
                <geo:manufacturerSerialNumber>5444R50040</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSReceiverTypeCode" codeListValue="TRIMBLE NETR9" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRIMBLE NETR9</geo:igsModelCode>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GPS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GLO</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GAL</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">BDS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">QZSS</geo:satelliteSystem>
                <geo:firmwareVersion>4.85</geo:firmwareVersion>
                <geo:elevationCutoffSetting>0.0</geo:elevationCutoffSetting>
                <geo:dateInstalled>2015-09-17T17:25:00Z</geo:dateInstalled>
                <geo:dateRemoved>2016-04-18T17:15:00Z</geo:dateRemoved>
                <geo:temperatureStabilization xsi:nil="true"></geo:temperatureStabilization>
            </geo:GnssReceiver>
            <geo:dateInserted>2015-09-17T17:25:00Z</geo:dateInserted>
        </geo:gnssReceiver>
        <geo:gnssReceiver>
            <geo:GnssReceiver gml:id="gnss-receiver-9">
                <geo:notes>firmware upgrade</geo:notes>
                <geo:manufacturerSerialNumber>5444R50040</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSReceiverTypeCode" codeListValue="TRIMBLE NETR9" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRIMBLE NETR9</geo:igsModelCode>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GPS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GLO</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GAL</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">BDS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">QZSS</geo:satelliteSystem>
                <geo:firmwareVersion>5.10</geo:firmwareVersion>
                <geo:elevationCutoffSetting>0.0</geo:elevationCutoffSetting>
                <geo:dateInstalled>2016-04-18T17:15:00Z</geo:dateInstalled>
                <geo:dateRemoved>2016-09-19T09:01:00Z</geo:dateRemoved>
                <geo:temperatureStabilization xsi:nil="true"></geo:temperatureStabilization>
            </geo:GnssReceiver>
            <geo:dateInserted>2016-04-18T17:15:00Z</geo:dateInserted>
        </geo:gnssReceiver>
        <geo:gnssReceiver>
            <geo:GnssReceiver gml:id="gnss-receiver-10">
                <geo:notes>firmware upgrade</geo:notes>
                <geo:manufacturerSerialNumber>5444R50040</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSReceiverTypeCode" codeListValue="TRIMBLE NETR9" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRIMBLE NETR9</geo:igsModelCode>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GPS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GLO</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GAL</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">BDS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">QZSS</geo:satelliteSystem>
                <geo:firmwareVersion>5.14</geo:firmwareVersion>
                <geo:elevationCutoffSetting>0.0</geo:elevationCutoffSetting>
                <geo:dateInstalled>2016-09-19T09:01:00Z</geo:dateInstalled>
                <geo:dateRemoved>2016-12-20T07:51:00Z</geo:dateRemoved>
                <geo:temperatureStabilization xsi:nil="true"></geo:temperatureStabilization>
            </geo:GnssReceiver>
            <geo:dateInserted>2016-09-19T09:01:00Z</geo:dateInserted>
        </geo:gnssReceiver>
        <geo:gnssReceiver>
            <geo:GnssReceiver gml:id="gnss-receiver-11">
                <geo:manufacturerSerialNumber>5444R50040</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSReceiverTypeCode" codeListValue="TRIMBLE NETR9" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRIMBLE NETR9</geo:igsModelCode>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GPS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GLO</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">GAL</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">BDS</geo:satelliteSystem>
                <geo:satelliteSystem codeSpace="urn:ga-gov-au:satellite-system-type">QZSS</geo:satelliteSystem>
                <geo:firmwareVersion>5.15</geo:firmwareVersion>
                <geo:elevationCutoffSetting>0.0</geo:elevationCutoffSetting>
                <geo:dateInstalled>2016-12-20T07:51:00Z</geo:dateInstalled>
                <geo:dateRemoved></geo:dateRemoved>
                <geo:temperatureStabilization xsi:nil="true"></geo:temperatureStabilization>
            </geo:GnssReceiver>
            <geo:dateInserted>2016-12-20T07:51:00Z</geo:dateInserted>
        </geo:gnssReceiver>
        <geo:gnssAntenna>
            <geo:GnssAntenna gml:id="gnss-antenna-1">
                <geo:manufacturerSerialNumber>12626150</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSAntennaTypeCode" codeListValue="TRM41249.00 NONE" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRM41249.00     NONE</geo:igsModelCode>
                <geo:antennaReferencePoint codeSpace="urn:ga-gov-au:antenna-reference-point-type">BAM</geo:antennaReferencePoint>
                <geo:marker-arpUpEcc.>0.002</geo:marker-arpUpEcc.>
                <geo:marker-arpNorthEcc.>0.0</geo:marker-arpNorthEcc.>
                <geo:marker-arpEastEcc.>0.0</geo:marker-arpEastEcc.>
                <geo:alignmentFromTrueNorth>0.0</geo:alignmentFromTrueNorth>
                <geo:antennaRadomeType codeSpace="urn:igs-org:gnss-radome-model-code">NONE</geo:antennaRadomeType>
                <geo:radomeSerialNumber></geo:radomeSerialNumber>
                <geo:antennaCableType></geo:antennaCableType>
                <geo:antennaCableLength xsi:nil="true"></geo:antennaCableLength>
                <geo:dateInstalled>2005-08-24T00:00:00Z</geo:dateInstalled>
                <geo:dateRemoved>2010-11-24T03:00:00Z</geo:dateRemoved>
            </geo:GnssAntenna>
            <geo:dateInserted>2005-08-24T00:00:00Z</geo:dateInserted>
        </geo:gnssAntenna>
        <geo:gnssAntenna>
            <geo:GnssAntenna gml:id="gnss-antenna-2">
                <geo:manufacturerSerialNumber>1441031186</geo:manufacturerSerialNumber>
                <geo:igsModelCode codeList="http://xml.gov.au/icsm/geodesyml/codelists/antenna-receiver-codelists.xml#GeodesyML_GNSSAntennaTypeCode" codeListValue="TRM57971.00 NONE" codeSpace="urn:xml-gov-au:icsm:egeodesy:0.5">TRM57971.00     NONE</geo:igsModelCode>
                <geo:antennaReferencePoint codeSpace="urn:ga-gov-au:antenna-reference-point-type">BAM</geo:antennaReferencePoint>
                <geo:marker-arpUpEcc.>0.002</geo:marker-arpUpEcc.>
                <geo:marker-arpNorthEcc.>0.0</geo:marker-arpNorthEcc.>
                <geo:marker-arpEastEcc.>0.0</geo:marker-arpEastEcc.>
                <geo:alignmentFromTrueNorth>0.0</geo:alignmentFromTrueNorth>
                <geo:antennaRadomeType codeSpace="urn:igs-org:gnss-radome-model-code">NONE</geo:antennaRadomeType>
                <geo:radomeSerialNumber></geo:radomeSerialNumber>
                <geo:antennaCableType></geo:antennaCableType>
                <geo:antennaCableLength xsi:nil="true"></geo:antennaCableLength>
                <geo:dateInstalled>2010-11-24T23:35:00Z</geo:dateInstalled>
                <geo:dateRemoved></geo:dateRemoved>
            </geo:GnssAntenna>
            <geo:dateInserted>2010-11-24T23:35:00Z</geo:dateInserted>
        </geo:gnssAntenna>
        <geo:surveyedLocalTie>
            <geo:SurveyedLocalTie gml:id="local-tie-1">
                <geo:tiedMarkerName>OUSD</geo:tiedMarkerName>
                <geo:tiedMarkerUsage>CONTINUOUS GPS</geo:tiedMarkerUsage>
                <geo:tiedMarkerCDPNumber></geo:tiedMarkerCDPNumber>
                <geo:tiedMarkerDOMESNumber>50212M001</geo:tiedMarkerDOMESNumber>
                <geo:differentialComponentsGNSSMarkerToTiedMonumentITRS>
                    <geo:dx xsi:nil="true"></geo:dx>
                    <geo:dy xsi:nil="true"></geo:dy>
                    <geo:dz xsi:nil="true"></geo:dz>
                </geo:differentialComponentsGNSSMarkerToTiedMonumentITRS>
                <geo:localSiteTiesAccuracy>0.0</geo:localSiteTiesAccuracy>
                <geo:surveyMethod>CONTINUOUS GPS</geo:surveyMethod>
                <geo:dateMeasured></geo:dateMeasured>
                <geo:notes>OUSD is running continuously.</geo:notes>
            </geo:SurveyedLocalTie>
            <geo:dateInserted></geo:dateInserted>
        </geo:surveyedLocalTie>
        <geo:surveyedLocalTie>
            <geo:SurveyedLocalTie gml:id="local-tie-2">
                <geo:tiedMarkerName>DUNT</geo:tiedMarkerName>
                <geo:tiedMarkerUsage>CGPS @ TIDE GAUGE</geo:tiedMarkerUsage>
                <geo:tiedMarkerCDPNumber></geo:tiedMarkerCDPNumber>
                <geo:tiedMarkerDOMESNumber>50212S001</geo:tiedMarkerDOMESNumber>
                <geo:differentialComponentsGNSSMarkerToTiedMonumentITRS>
                    <geo:dx xsi:nil="true"></geo:dx>
                    <geo:dy xsi:nil="true"></geo:dy>
                    <geo:dz xsi:nil="true"></geo:dz>
                </geo:differentialComponentsGNSSMarkerToTiedMonumentITRS>
                <geo:localSiteTiesAccuracy>0.0</geo:localSiteTiesAccuracy>
                <geo:surveyMethod>CONTINUOUS GPS</geo:surveyMethod>
                <geo:dateMeasured></geo:dateMeasured>
                <geo:notes>DUNT is running continuously.</geo:notes>
            </geo:SurveyedLocalTie>
            <geo:dateInserted></geo:dateInserted>
        </geo:surveyedLocalTie>
        <geo:frequencyStandard>
            <geo:FrequencyStandard gml:id="frequency-standard-1">
                <geo:standardType codeSpace="urn:ga-gov-au:frequency-standard-type">INTERNAL</geo:standardType>
                <geo:inputFrequency xsi:nil="true"></geo:inputFrequency>
                <gml:validTime>
                    <gml:TimePeriod gml:id="frequency-standard-1--time-period-1">
                        <gml:beginPosition>2005-08-24</gml:beginPosition>
                        <gml:endPosition></gml:endPosition>
                    </gml:TimePeriod>
                </gml:validTime>
                <geo:notes></geo:notes>
            </geo:FrequencyStandard>
            <geo:dateInserted>2005-08-24</geo:dateInserted>
        </geo:frequencyStandard>
        <geo:siteContact gml:id="agency-1">
            <gmd:MD_SecurityConstraints>
                <gmd:classification gco:nilReason="missing"/>
            </gmd:MD_SecurityConstraints>
            <gmd:CI_ResponsibleParty>
                <gmd:individualName>
                    <gco:CharacterString>GeoNet Reception</gco:CharacterString>
                </gmd:individualName>
                <gmd:organisationName>
                    <gco:CharacterString>GNS Science</gco:CharacterString>
                </gmd:organisationName>
                <gmd:contactInfo>
                    <gmd:CI_Contact>
                        <gmd:phone>
                            <gmd:CI_Telephone>
                                <gmd:voice>
                                    <gco:CharacterString>+64 4 570 1444</gco:CharacterString>
                                </gmd:voice>
                                <gmd:voice>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:voice>
                                <gmd:facsimile>
                                    <gco:CharacterString>+64 4 570 4676</gco:CharacterString>
                                </gmd:facsimile>
                            </gmd:CI_Telephone>
                        </gmd:phone>
                        <gmd:address>
                            <gmd:CI_Address>
                                <gmd:deliveryPoint>
                                    <gco:CharacterString>GNS Science 1 Fairway Drive, Avalon PO Box 30368, Lower Hutt New Zealand</gco:CharacterString>
                                </gmd:deliveryPoint>
                                <gmd:city>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:city>
                                <gmd:postalCode>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:postalCode>
                                <gmd:country>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:country>
                                <gmd:electronicMailAddress>
                                    <gco:CharacterString>info@geonet.org.nz</gco:CharacterString>
                                </gmd:electronicMailAddress>
                            </gmd:CI_Address>
                        </gmd:address>
                    </gmd:CI_Contact>
                </gmd:contactInfo>
                <gmd:role>
                    <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="pointOfContact"></gmd:CI_RoleCode>
                </gmd:role>
            </gmd:CI_ResponsibleParty>
        </geo:siteContact>
        <geo:siteContact gml:id="agency-2">
            <gmd:MD_SecurityConstraints>
                <gmd:classification gco:nilReason="missing"/>
            </gmd:MD_SecurityConstraints>
            <gmd:CI_ResponsibleParty>
                <gmd:individualName>
                    <gco:CharacterString>Paula Gentle</gco:CharacterString>
                </gmd:individualName>
                <gmd:organisationName>
                    <gco:CharacterString>GNS Science</gco:CharacterString>
                </gmd:organisationName>
                <gmd:contactInfo>
                    <gmd:CI_Contact>
                        <gmd:phone>
                            <gmd:CI_Telephone>
                                <gmd:voice>
                                    <gco:CharacterString>+64 4 460 2757</gco:CharacterString>
                                </gmd:voice>
                                <gmd:voice>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:voice>
                                <gmd:facsimile>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:facsimile>
                            </gmd:CI_Telephone>
                        </gmd:phone>
                        <gmd:address>
                            <gmd:CI_Address>
                                <gmd:deliveryPoint>
                                    <gco:CharacterString>GNS Science 1 Fairway Drive, Avalon PO Box 30368, Lower Hutt New Zealand</gco:CharacterString>
                                </gmd:deliveryPoint>
                                <gmd:city>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:city>
                                <gmd:postalCode>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:postalCode>
                                <gmd:country>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:country>
                                <gmd:electronicMailAddress>
                                    <gco:CharacterString>pgentle@linz.govt.nz</gco:CharacterString>
                                </gmd:electronicMailAddress>
                            </gmd:CI_Address>
                        </gmd:address>
                    </gmd:CI_Contact>
                </gmd:contactInfo>
                <gmd:role>
                    <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="pointOfContact"></gmd:CI_RoleCode>
                </gmd:role>
            </gmd:CI_ResponsibleParty>
        </geo:siteContact>
        <geo:siteMetadataCustodian gml:id="agency-3">
            <gmd:MD_SecurityConstraints>
                <gmd:classification gco:nilReason="missing"/>
            </gmd:MD_SecurityConstraints>
            <gmd:CI_ResponsibleParty>
                <gmd:individualName>
                    <gco:CharacterString></gco:CharacterString>
                </gmd:individualName>
                <gmd:organisationName>
                    <gco:CharacterString></gco:CharacterString>
                </gmd:organisationName>
                <gmd:contactInfo>
                    <gmd:CI_Contact>
                        <gmd:phone>
                            <gmd:CI_Telephone>
                                <gmd:voice>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:voice>
                                <gmd:voice>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:voice>
                                <gmd:facsimile>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:facsimile>
                            </gmd:CI_Telephone>
                        </gmd:phone>
                        <gmd:address>
                            <gmd:CI_Address>
                                <gmd:deliveryPoint>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:deliveryPoint>
                                <gmd:city>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:city>
                                <gmd:postalCode>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:postalCode>
                                <gmd:country>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:country>
                                <gmd:electronicMailAddress>
                                    <gco:CharacterString></gco:CharacterString>
                                </gmd:electronicMailAddress>
                            </gmd:CI_Address>
                        </gmd:address>
                    </gmd:CI_Contact>
                </gmd:contactInfo>
                <gmd:role>
                    <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="pointOfContact"></gmd:CI_RoleCode>
                </gmd:role>
            </gmd:CI_ResponsibleParty>
        </geo:siteMetadataCustodian>
        <geo:moreInformation>
            <geo:MoreInformation gml:id="more-information">
            <geo:dataCenter>CDDIS</geo:dataCenter>
            <geo:dataCenter>IGN</geo:dataCenter>
            <geo:urlForMoreInformation>www.geonet.org.nz</geo:urlForMoreInformation>
            <geo:siteMap>GNS file 45/1/4-DUND</geo:siteMap>
            <geo:siteDiagram>GNS file 45/1/4-DUND</geo:siteDiagram>
            <geo:horizonMask>No obstructions.</geo:horizonMask>
            <geo:monumentDescription>GNS file 45/1/4-DUND</geo:monumentDescription>
            <geo:sitePictures>GNS file 45/1/4-DUND</geo:sitePictures>
            <geo:notes>GNS file 45/1/4-DUND</geo:notes>
            <geo:antennaGraphicsWithDimensions></geo:antennaGraphicsWithDimensions>
            <geo:insertTextGraphicFromAntenna></geo:insertTextGraphicFromAntenna>
            <geo:DOI codeSpace="urn:ga-gov-au:self.moreInformation-type">TODO</geo:DOI>
            </geo:MoreInformation>
        </geo:moreInformation>
    </geo:siteLog>
</geo:GeodesyML>


text:
package org.apache.flink.api.common.cache;

import org.apache.flink.annotation.Public;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.configuration.ConfigurationUtils;
import org.apache.flink.core.fs.Path;

import java.io.File;
import java.io.Serializable;
import java.net.URI;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.stream.Collectors;

/**
 * DistributedCache provides static methods to write the registered cache files into job configuration or decode
 * them from job configuration. It also provides user access to the file locally.
 */
@Public
public class DistributedCache {

	/**
	 * Meta info about an entry in {@link DistributedCache}.
	 *
	 *
Entries have different semantics for local directories depending on where we are in the job-submission process.
	 * After registration through the API {@code filePath} denotes the original directory.
	 * After the upload to the cluster (which includes zipping the directory), {@code filePath} denotes the (server-side) copy of the zip.
	 */
	public static class DistributedCacheEntry implements Serializable {

		public String filePath;
		public Boolean isExecutable;
		public boolean isZipped;

		public byte[] blobKey;

		/** Client-side constructor used by the API for initial registration. */
		public DistributedCacheEntry(String filePath, Boolean isExecutable) {
			this(filePath, isExecutable, null);
		}

		/** Client-side constructor used during job-submission for zipped directory. */
		public DistributedCacheEntry(String filePath, boolean isExecutable, boolean isZipped) {
			this(filePath, isExecutable, null, isZipped);
		}

		/** Server-side constructor used during job-submission for zipped directories. */
		public DistributedCacheEntry(String filePath, Boolean isExecutable, byte[] blobKey, boolean isZipped) {
			this.filePath = filePath;
			this.isExecutable = isExecutable;
			this.blobKey = blobKey;
			this.isZipped = isZipped;
		}

		/** Server-side constructor used during job-submission for files. */
		public DistributedCacheEntry(String filePath, Boolean isExecutable, byte[] blobKey){
			this(filePath, isExecutable, blobKey, false);
		}

		@Override
		public boolean equals(Object o) {
			if (this == o) {
				return true;
			}
			if (o == null || getClass() != o.getClass()) {
				return false;
			}
			DistributedCacheEntry that = (DistributedCacheEntry) o;
			return isZipped == that.isZipped &&
				Objects.equals(filePath, that.filePath) &&
				Objects.equals(isExecutable, that.isExecutable) &&
				Arrays.equals(blobKey, that.blobKey);
		}

		@Override
		public int hashCode() {
			int result = Objects.hash(filePath, isExecutable, isZipped);
			result = 31 * result + Arrays.hashCode(blobKey);
			return result;
		}

		@Override
		public String toString() {
			return "DistributedCacheEntry{" +
				"filePath='" + filePath + '\'' +
				", isExecutable=" + isExecutable +
				", isZipped=" + isZipped +
				", blobKey=" + Arrays.toString(blobKey) +
				'}';
		}
	}

	// ------------------------------------------------------------------------

	private final Map<String, Future<Path>> cacheCopyTasks;

	public DistributedCache(Map<String, Future<Path>> cacheCopyTasks) {
		this.cacheCopyTasks = cacheCopyTasks;
	}

	// ------------------------------------------------------------------------

	public File getFile(String name) {
		if (name == null) {
			throw new NullPointerException("name must not be null");
		}

		Future<Path> future = cacheCopyTasks.get(name);
		if (future == null) {
			throw new IllegalArgumentException("File with name '" + name + "' is not available." +
					" Did you forget to register the file?");
		}

		try {
			final Path path = future.get();
			URI tmp = path.makeQualified(path.getFileSystem()).toUri();
			return new File(tmp);
		}
		catch (ExecutionException e) {
			throw new RuntimeException("An error occurred while copying the file.", e.getCause());
		}
		catch (Exception e) {
			throw new RuntimeException("Error while getting the file registered under '" + name +
					"' from the distributed cache", e);
		}
	}

	// ------------------------------------------------------------------------
	//  Utilities to read/write cache files from/to the configuration
	// ------------------------------------------------------------------------

	public static void writeFileInfoToConfig(String name, DistributedCacheEntry e, Configuration conf) {
		int num = conf.getInteger(CACHE_FILE_NUM, 0) + 1;
		conf.setInteger(CACHE_FILE_NUM, num);
		conf.setString(CACHE_FILE_NAME + num, name);
		conf.setString(CACHE_FILE_PATH + num, e.filePath);
		conf.setBoolean(CACHE_FILE_EXE + num, e.isExecutable || new File(e.filePath).canExecute());
		conf.setBoolean(CACHE_FILE_DIR + num, e.isZipped || new File(e.filePath).isDirectory());
		if (e.blobKey != null) {
			conf.setBytes(CACHE_FILE_BLOB_KEY + num, e.blobKey);
		}
	}

	public static Set<Entry<String, DistributedCacheEntry>> readFileInfoFromConfig(Configuration conf) {
		int num = conf.getInteger(CACHE_FILE_NUM, 0);
		if (num == 0) {
			return Collections.emptySet();
		}

		Map<String, DistributedCacheEntry> cacheFiles = new HashMap<String, DistributedCacheEntry>();
		for (int i = 1; i <= num; i++) {
			String name = conf.getString(CACHE_FILE_NAME + i, null);
			String filePath = conf.getString(CACHE_FILE_PATH + i, null);
			boolean isExecutable = conf.getBoolean(CACHE_FILE_EXE + i, false);
			boolean isDirectory = conf.getBoolean(CACHE_FILE_DIR + i, false);

			byte[] blobKey = conf.getBytes(CACHE_FILE_BLOB_KEY + i, null);
			cacheFiles.put(name, new DistributedCacheEntry(filePath, isExecutable, blobKey, isDirectory));
		}
		return cacheFiles.entrySet();
	}

	/**
	 * Parses a list of distributed cache entries encoded in a string. Can be used to parse a config option
	 * described by {@link org.apache.flink.configuration.PipelineOptions#CACHED_FILES}.
	 *
	 *
See {@link org.apache.flink.configuration.PipelineOptions#CACHED_FILES} for the format.
	 *
	 * @param files List of string encoded distributed cache entries.
	 */
	public static List<Tuple2<String, DistributedCacheEntry>> parseCachedFilesFromString(List<String> files) {
		return files.stream()
			.map(ConfigurationUtils::parseMap)
			.map(m -> Tuple2.of(
				m.get("name"),
				new DistributedCacheEntry(
					m.get("path"),
					Optional.ofNullable(m.get("executable")).map(Boolean::parseBoolean).orElse(false)))
			).collect(Collectors.toList());
	}

	private static final String CACHE_FILE_NUM = "DISTRIBUTED_CACHE_FILE_NUM";

	private static final String CACHE_FILE_NAME = "DISTRIBUTED_CACHE_FILE_NAME_";

	private static final String CACHE_FILE_PATH = "DISTRIBUTED_CACHE_FILE_PATH_";

	private static final String CACHE_FILE_EXE = "DISTRIBUTED_CACHE_FILE_EXE_";

	private static final String CACHE_FILE_DIR = "DISTRIBUTED_CACHE_FILE_DIR_";

	private static final String CACHE_FILE_BLOB_KEY = "DISTRIBUTED_CACHE_FILE_BLOB_KEY_";
}


text:
<template name="lobby">

Lobby

Games

        {{#each games}}
           {{>gameView}}
        {{/each}}

</template>

<template name="gameView">

        {{#if started}}
            {{mapWidth}}
            x
            {{mapHeight}}
            {{getPlayerNameById playerId1}}
            VS
            {{getPlayerNameById playerId2}}

            | view replay
            {{#if equals type 'ogre'}}
                {{getPlayerNameById playerId3}}
                {{getPlayerNameById playerId4}}
            {{/if}}
        {{else}}
            <input class="lobby__deck-size" type="text" value="{{mapWidth}}" name="mapWidth">
            <input class="lobby__deck-size" type="text" value="{{mapHeight}}" name="mapHeight">
            <select class="game-type-selector">
                <option value="solo" selected="{{#if equals type 'solo'}}selected{{/if}}">Соло</option>
                <option value="ogre" selected="{{#if equals type 'ogre'}}selected{{/if}}">Огр</option>
            </select>

            <select class="game-deck-selector" name="playerId1">
                {{#each decks}}
                    <option value="{{_id}}" selected="{{#if equals _id ../playerId1}}selected{{/if}}">{{name}}</option>
                {{/each}}
            </select>

            <select class="game-deck-selector" name="playerId2">
                {{#each decks}}
                    <option value="{{_id}}" selected="{{#if equals _id ../playerId2}}selected{{/if}}">{{name}}</option>
                {{/each}}
            </select>

            {{#if equals type 'ogre'}}
                <select class="game-deck-selector" name="playerId3">
                    {{#each decks}}
                        <option value="{{_id}}" selected="{{#if equals _id ../playerId3}}selected{{/if}}">{{name}}</option>
                    {{/each}}
                </select>

                <select class="game-deck-selector" name="playerId4">
                    {{#each decks}}
                        <option value="{{_id}}" selected="{{#if equals _id ../playerId4}}selected{{/if}}">{{name}}</option>
                    {{/each}}
                </select>
            {{/if}}

            <button class="start-game-button">Start game</button>
        {{/if}}
        <button class="delete-game-button">Delete game</button>

</template>


text:
<?php
namespace mcanan\app\controllers;

class Batch extends \mcanan\framework\Controller {

	public function index() {
	}

	public function facebook() {
		$this->loadBatch("FacebookBatch");
		$this->FacebookBatch->run();
	}

    public function facebookFrase() {
		$this->loadBatch("FacebookBatchFrase");
		$this->FacebookBatchFrase->run();
    }

	public function facebookHoySeCorre() {
		$this->loadBatch("FacebookHoySeCorreBatch");
		$this->FacebookHoySeCorreBatch->run();
	}

	public function twitter() {
		$this->loadBatch("TwitterBatch");
		$this->TwitterBatch->run();
	}

    public function twitterFrase() {
		$this->loadBatch("TwitterBatchFrase");
		$this->TwitterBatchFrase->run();
    }

	public function twitterHoySeCorre() {
		$this->loadBatch("TwitterHoySeCorreBatch");
		$this->TwitterHoySeCorreBatch->run();
	}

	public function cacheFb() {
		$this->loadBatch("Cache_Fb_Batch");
		$this->Cache_Fb_Batch->run();
	}
}
?>


text:
PyOWM can be configured at your convenience.

The library comes with a pre-cooked configuration that you can change according to your needs. The configuration is formulated as a Python dictionary.

## Default configuration
The default config is the `DEFAULT_CONFIG` dict living in the `pyowm.config` module (check it to know the defaults)

## Configuration format
The config dict is formatted as follows:

```
{
    "subscription_type": <pyowm.commons.enums.SubscriptionTypeEnum>,
    "language": <str>,
    "connection": {
        "use_ssl": <bool>
        "verify_ssl_certs": <bool>,
        "use_proxy": <bool>,
        "timeout_secs": <int>,
        "max_retries": <int>|<None>
    },
    "proxies": {
        "http": <str>,
        "https": <str>
    }
}
```

Here are the keys:

  * `subscription_type`: this object represents an OWM API Plan subscription. Possible values are: `free|startup|developer|professional|enterprise`
  * `language`: 2-char string representing the language you want the weather statuses returned in. Currently serving: `en|ru|ar|zh_cn|ja|es|it|fr|de|pt` and more. Check [here](https://openweathermap.org/current) for a comprehensive list of supported languages
  * `connection`:
    * `use_ssl`: whether to use SSL or not for API calls
    * `verify_ssl_certs`: speaks by itself..
    * `use_proxy`: whether to use a proxy server or not (useful if you're eg. in a corporate network). HTTP and SOCKS5 proxies are allowed
    * `timeout_secs`: after how many seconds the API calls should be timeouted
    * `max_retries`: how many times PyOWM should retry to call the API if it responds with an error or timeouts. Defaults to `None`, which means: call forever.
  * `proxies` (this sub-dict is ignored if `use_proxy == False`)
    * `http`: the HTTP URL of the proxy server
    * `https`: the HTTPS/SOCKS5 URL of the proxy server

## Providing a custom configuration
You can either pass in your custom dict to the global `OWM` object upon instantiation:

```python
from pyowm import OWM
owm = OWM('my-api-key', config=my_custom_config_dict)  # pass in your dict as a named argument
```

or you can put your custom configuration inside a JSON text file and have it read by PyOWM:

```python
from pyowm.owm import OWM
from pyowm.utils.config import get_config_from
config_dict = get_config_from('/path/to/configfile.json')  # This utility comes in handy
owm = OWM('your-free-api-key', config_dict)
```

Be aware that the JSON file must be properly formatted and that the unspecified non-mandatory keys will be filled in with default values. Here is an example:

```json
{
    "api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "subscription_type": "professional",
    "language": "ru",
    "connection": {
        "use_ssl": true,
        "verify_ssl_certs": true,
        "timeout_secs": 1
    }
}
```


text:
export class JudgeInScoreGroupDto {
  sortNumber: number;
  scoreGroupId: number;
  judgeId: number;
}


text:
package ecs

//Licensed under the Apache License, Version 2.0 (the "License");
//you may not use this file except in compliance with the License.
//You may obtain a copy of the License at
//
//http://www.apache.org/licenses/LICENSE-2.0
//
//Unless required by applicable law or agreed to in writing, software
//distributed under the License is distributed on an "AS IS" BASIS,
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//See the License for the specific language governing permissions and
//limitations under the License.
//
// Code generated by Alibaba Cloud SDK Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

// ImageComponent is a nested struct in ecs response
type ImageComponent struct {
	ImageComponentSet []ImageComponentSet `json:"ImageComponentSet" xml:"ImageComponentSet"`
}


text:
from daemon import Daemon
import socket
import time

html = """HTTP/1.1 200 OK\r\nContent-Type: image/jpeg\r\nContent-Length: """
html404 = """HTTP/1.1 404 Not Found\r\nContent-Type: text/html\r\nContent-Length: 14\r\n\r\n<h1>404 </h1>"""

class agentD(Daemon):
    def run(self):
        listen_fd = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
        listen_fd.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        listen_fd.bind(("0.0.0.0", 9000))
        listen_fd.listen(10)
        while True:
            conn, addr = listen_fd.accept()
            print "coming", conn, addr
            read_data = conn.recv(100)
            print read_data
            pic_name = read_data.split(" ")[1][1:]
            print pic_name
            try:
                with file(pic_name) as f:
                    pic_content = f.read()
                    length = len(pic_content)
                    html_resp = html
                    html_resp += "%d\r\n\r\n" % (length)
                    print html_resp
                    html_resp += pic_content
            except:
                html_resp = html404
            conn.send(html_resp)
            conn.close()

if __name__ == "__main__":
    agentd = agentD(pidfile="agentd.pid", stdout="agentd.log", stderr="agentd.log")
    agentd.run()


text:
(function(){
    tinymce.create("tinymce.plugins.Save",{
        init:function(a,b){
            var c=this;
            c.editor=a;
            a.addCommand("mceSave",c._save,c);
            a.addCommand("mceCancel",c._cancel,c);
            a.addButton("save",{
                title:"save.save_desc",
                cmd:"mceSave"
            });
            a.addButton("cancel",{
                title:"save.cancel_desc",
                cmd:"mceCancel"
            });
            a.onNodeChange.add(c._nodeChange,c);
            a.addShortcut("ctrl+s",a.getLang("save.save_desc"),"mceSave")
        },
        getInfo:function(){
            return{
                longname:"Save",
                author:"Moxiecode Systems AB",
                authorurl:"http://tinymce.moxiecode.com",
                infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save",
                version:tinymce.majorVersion+"."+tinymce.minorVersion
            }
        },
        _nodeChange:function(b,a,c){
            var b=this.editor;
            if(b.getParam("save_enablewhendirty")){
                a.setDisabled("save",!b.isDirty());
                a.setDisabled("cancel",!b.isDirty())
            }
        },
        _save:function(){
            var c=this.editor,a,e,d,b;
            a=tinymce.DOM.get(c.id).form||tinymce.DOM.getParent(c.id,"form");
            if(c.getParam("save_enablewhendirty")&&!c.isDirty()){
                return
            }
            tinyMCE.triggerSave();
            if(e=c.getParam("save_onsavecallback")){
                if(c.execCallback("save_onsavecallback",c)){
                    c.startContent=tinymce.trim(c.getContent({
                        format:"raw"
                    }));
                    c.nodeChanged()
                }
                return
            }
            if(a){
                c.isNotDirty=true;
                if(a.onsubmit==null||a.onsubmit()!=false){
                    a.submit()
                }
                c.nodeChanged()
            }else{
                c.windowManager.alert("Error: No form element found.")
            }
        },
        _cancel:function(){
            var a=this.editor,c,b=tinymce.trim(a.startContent);
            if(c=a.getParam("save_oncancelcallback")){
                a.execCallback("save_oncancelcallback",a);
                return
            }
            a.setContent(b);
            a.undoManager.clear();
            a.nodeChanged()
        }
    });
    tinymce.PluginManager.add("save",tinymce.plugins.Save)
})();


text:
#pragma once
#include <aws/mediastore-data/MediaStoreData_EXPORTS.h>
#include <aws/core/AmazonSerializableWebServiceRequest.h>
#include <aws/core/utils/UnreferencedParam.h>
#include <aws/core/http/HttpRequest.h>
#include <aws/core/AmazonStreamingWebServiceRequest.h>

namespace Aws
{
namespace MediaStoreData
{
  class AWS_MEDIASTOREDATA_API MediaStoreDataRequest : public Aws::AmazonSerializableWebServiceRequest
  {
  public:
    virtual ~MediaStoreDataRequest () {}
    virtual Aws::String SerializePayload() const override = 0;

    void AddParametersToRequest(Aws::Http::HttpRequest& httpRequest) const { AWS_UNREFERENCED_PARAM(httpRequest); }

    inline Aws::Http::HeaderValueCollection GetHeaders() const override
    {
      auto headers = GetRequestSpecificHeaders();

      if(headers.size() == 0 || (headers.size() > 0 && headers.count(Aws::Http::CONTENT_TYPE_HEADER) == 0))
      {
        headers.insert(Aws::Http::HeaderValuePair(Aws::Http::CONTENT_TYPE_HEADER, Aws::AMZN_JSON_CONTENT_TYPE_1_1 ));
      }

      return headers;
    }

  protected:
    virtual Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const { return Aws::Http::HeaderValueCollection(); }

  };

  typedef Aws::AmazonStreamingWebServiceRequest StreamingMediaStoreDataRequest;

} // namespace MediaStoreData
} // namespace Aws


text:
Users should create a new instance of [SystemInfo](https://oshi.github.io/oshi/oshi-core/apidocs/oshi/SystemInfo.html) and use the getters from this class to access the platform-specific hardware and software interfaces using the respective `get*()` methods. The interfaces in `oshi.hardware` and `oshi.software.os` provide cross-platform functionality. See the `main()` method of [SystemInfoTest](https://github.com/oshi/oshi/blob/master/oshi-core/src/test/java/oshi/SystemInfoTest.java) for sample code.

Methods return a "snapshot" of current levels. To display values which change over time, it is intended that users poll for information no more frequently than approximately every second. Disk and file system calls may incur some latency and should be polled less frequently.
CPU usage calculation precision depends on the relation of the polling interval to both system clock tick granularity and the number of logical processors.

## Is the API backwards compatible between versions?

The interfaces and classes in `oshi.hardware` and `oshi.software.os` are considered the OSHI API and are guaranteed to be compatible with the same major version. Differences between major versions can be found in the [Upgrading.md](Upgrading.md) document.

Most, if not all, of the platform-specific implementations of these APIs in lower level packages will remain the same, although it is not intended that users access platform-specific code, and some changes may occur between minor versions, most often in the number of arguments passed to constructors or platform-specific methods. Supporting code in the `oshi.driver` and `oshi.util` packages may,
rarely, change between minor versions, usually associated with organizing package structure or changing parsing methods for efficiency/consistency/ease of use.

Code in the platform-specific `oshi.jna.*` packages is intended to be temporary and will be removed when that respective code is included in the JNA project.

## Does OSHI support Open Service Gateway initiative (OSGi) modules?

OSHI adds OSGi manifest entries using `maven-source-plugin` and `mvn-bnd-plugin`. Submit an issue if the configuration of these plugins needs to be adjusted to support your project.

## Does OSHI support Java Module System (JPMS) modules?

OSHI publishes an `oshi-core-java11` artifact with a full module descriptor (and only modular dependencies), which will allow the existing API to be placed on the module path. This artifact shares the same API as `oshi-core`.

The `oshi-core` artifact includes `Automatic-Module-Name` of `com.github.oshi` in its manifest.  However, Java Module System users are encouraged to use the `oshi-core-java11` artifact to take full advantage of modularization.

More fine grained modularization is being considered in a possible future major API rewrite targeting JDK 21 compatibility and leveraging features from Project Panama (JEP-370, JEP-383, and JEP-389). If you have a specific use case that would benefit from modularization, submit an issue to discuss it.

## Is OSHI Thread Safe?

OSHI 5.X and above is thread safe with the exceptions noted below. `@Immutable`, `@ThreadSafe`, and `@NotThreadSafe` document
each class. The following classes are not thread-safe:
 - `GlobalConfig` does not protect against multiple threads manipulating the configuration programmatically.
 However, these methods are intended to be used by a single thread at startup in lieu of reading a configuration file.
 OSHI gives no guarantees on re-reading changed configurations.
 - On non-Windows platforms, the `getSessions()` method on the `OperatingSystem` interface uses native code which is not thread safe. While OSHI's methods employ synchronization to coordinate access from its own threads, users are cautioned that other operating system code may access the same underlying data structures and produce unexpected results, particularly on servers with frequent new logins.
The `oshi.os.unix.whoCommand` property may be set to parse the Posix-standard `who` command in preference to the native implementation,
which may use reentrant code on some platforms.
 - The `PerfCounterQueryHandler` class is not thread-safe but is only internally used in single-thread contexts,
and is not intended for user use.

Earlier versions do not guarantee thread safety, and it should not be assumed.

## What minimum Java version is required?

OSHI 4.x and later require minimum Java 8 compatibility. This minimum level will be retained through at least OpenJDK 8 EOL.

OSHI 3.x is compatible with Java 7 up to 3.13.x versions.  OSHI 3.14.0 restored Java 6 compatibility for the `oshi-core` artifact only. While no new features are envisioned for this branch, bug fixes will be considered if requested on a case basis, particularly if fixed in a later version.

## Which operating systems are supported?

OSHI has been implemented and tested on the following systems.  Some features may work on earlier versions.
* Windows 7 and higher.  (Nearly all features work on Vista and most work on Windows XP.)
* macOS version 10.6 (Snow Leopard) and higher.
* Linux (Most major distributions) Kernel 2.6 and higher
* FreeBSD 10
* OpenBSD 6.8
* Solaris 11 (SunOS 5.11)
* AIX 7.1 (POWER4)

## How do I resolve JNA `NoClassDefFoundError` or `NoSuchMethodError` issues?

OSHI uses the latest version of JNA, which may conflict with other dependencies your project (or its parent) includes.
If you experience a `NoClassDefFoundError` or `NoSuchMethodError` issues with JNA artifacts, you likely have
an older version of either `jna` or `jna-platform` in your classpath from a transitive dependency on another project.
Consider one or more of the following steps to resolve the conflict:
 - Listing OSHI earlier (or first) in your dependency list
 - Specifying the most recent version of JNA (both `jna` and `jna-platform` artifacts) in your `pom.xml` as dependencies.
 - If you are using the Spring Boot Starter Parent version 2.2 and earlier that includes JNA as a dependency:
   - Upgrade to version 2.3 which does not have a JNA dependency (preferred)
   - If you must use version 2.2 or earlier, override the `jna.version` property to the latest JNA version.

## Why does OSHI's System and Processor CPU usage differ from the Windows Task Manager?

CPU usage is generally calculated as (active time / active+idle time).

For System and per-Processor CPU ticks calculations, the total number of "idle" ticks is available for this calculation, which matches operating system displays on Windows 7 and earlier, and Unix-based operating systems, and CPU usage will never exceed 100%.

Starting with Windows 8, a change was made to the way that Task Manager and Performance Monitor report CPU utilization.
The values in Task Manager now correspond to the `Processor Information\% Processor Utility` and `Processor Information\% Privileged Utility` performance counters, not to the `Processor Information\% Processor Time` and `Processor Information\% Privileged Time` counters as in Windows 7.

This fundamentally changes the Task Manager's meaning of "CPU Usage". Windows documentation for `% Processor Time` states:
> % Processor Time is the percentage of elapsed time that the processor spends to execute a non-Idle thread... This counter is the primary indicator of processor activity, and displays the average percentage of busy time observed during the sample interval.

The documentation for `% Processor Utility` now used by the Task Manager displays a different metric:
> Processor Utility is the amount of work a processor is completing, as a percentage of the amount of work the processor could complete if it were running at its nominal performance and never idle. On some processors, Processor Utility may exceed 100%.

Features which change CPU frequency such as Intel Speed Step, Intel Turbo Boost, AMD Precision Boost, and others, can cause this value to exceed 100% on both individual processors and the entire system. While a "work completed" metric has some benefits as a performance measure, the Task Manager caps the value at 100%, which means the Task Manager shows "the amount of work a processor is completing compared to its nominal performance, except if it's over 100% we won't tell you how much extra work it's doing."

If you desire OSHI's output to match the Task Manager, you may optionally enable this setting in the configuration file, or by calling `GlobalConfig.set(GlobalConfig.OSHI_OS_WINDOWS_CPU_UTILITY, true);` shortly after startup (at least before the first instantiation of the Central Processor class). Note that OSHI will not cap its CPU Usage calculation at 100%, giving you more information than the Windows Task Manager if the "work completed" metric is important to you.

For this calculation to produce meaningful data, the ticks used to calculate usage must have come from the same instance of CentralProcessor. Also, the first polling interval must be less than 7 minutes to properly initialize values.

## Why does OSHI's Process CPU usage differ from the Windows Task Manager?

CPU usage is generally calculated as (active time / active+idle time). On a multi-processor system, the "idle" time can be accrued on each/any of the logical processors.

For per-Process CPU ticks, there is no "idle" counter available, so the calculation ends up being (active time / up time). It is possible
for a multi-threaded process to accrue more active clock time than elapsed clock time, and result in CPU usage over 100%
(e.g., on a 4-processor system it could in theory reach 400%). This interpretation matches the value displayed in `ps` or `top` on
Unix-based operating systems. However, Windows scales process CPU usage to the system, so that the sum of all Process CPU percentages
can never exceed 100% (ignoring roundoff errors). On a 4-processor system, a single-threaded process maximizing usage of one logical
processor will show (on Windows) as 25% usage. OSHI's calculation for Process CPU load will report the Unix-based calculation in this
class, which would be closer to 100%.

If you want per-Process CPU load to match the Windows Task Manager display, you should divide OSHI's calculation by the number of logical processors.  This is an entirely cosmetic preference.

## Why does OSHI freeze for 20 seconds (or larger multiples of 20 seconds) on Windows when it first starts up?

The initial call to some Windows Management Instrumentation (WMI) queries sometimes trigger RPC-related negotiation delays and timeouts described
[here](https://docs.microsoft.com/en-us/windows/win32/services/services-and-rpc-tcp). OSHI attempts to use performance counters in preference
to WMI whenever possible, but includes the WMI queries as a backup. There are several potential causes of these delays, which seem to occur more
often on corporate-managed machines. If you are experiencing these delays:
1. Investigate whether your English (page 009) performance counters are corrupt. [Rebuild them](https://docs.microsoft.com/en-us/troubleshoot/windows-server/performance/rebuild-performance-counter-library-values) if necessary.
2. You can configure RPC and shorten the timeout by altering registry values under `HKLM\SYSTEM\CurrentControlSet\Control`.
The `SCMApiConnectionParam` value (defaults to 21000 ms) can be reduced to shorten the delay.

## How is OSHI different from SIGAR?

Both OSHI and Hyperic's [SIGAR](https://github.com/hyperic/sigar) (System Information Gatherer and Reporter)
provide cross-platform operating system and hardware information, and are both used to support distributed
system monitoring and reporting, among other use cases. The OSHI project was started, and development
continues, to overcome specific shortcomings in SIGAR for some use cases.  OSHI does have feature parity
with nearly all SIGAR functions. Key differences include:
 - **Additional DLL** SIGAR's implementation is primarily in native C, compiled separately for its supported
operating systems. It therefore requires users to download an additional DLL specific to their operating
system. This does have a few advantages for specific, targeted use cases, including faster native code routines,
and availability of some native compiler intrinsics. In contrast, OSHI accesses native APIs using JNA, which
does not require user installation of any additional platform-specific DLLs.
 - **Corporate Development / Abandonment** SIGAR was developed commercially at Hyperic to support monitoring of
their HQ product. Hyperic's products were later acquired by VMWare, which has transitioned away from Hyperic
products and have completely abandoned SIGAR. The [last release](https://github.com/hyperic/sigar/releases/tag/sigar-1.6.4)
was in 2010 and the [last source commit](https://github.com/hyperic/sigar/commit/7a6aefc7fb315fc92445edcb902a787a6f0ddbd9)
was in 2015. [Multiple independent forks](https://github.com/hyperic/sigar/issues/95) by existing users attempt
to fix specific bugs/incompatibilities but none has emerged as a maintained/released fork.  In contrast, OSHI's
development has been entirely done by open source volunteers, and it is under active development as of 2021.
 - **Support** SIGAR is completely unsupported by its authors, and there is no organized community support.
OSHI is supported actively to fix bugs, respond to questions, and implement new features.

## Does OSHI work on ARM hardware?

Yes, CI is actively conducted on Linux ARM hardware and other platforms will be added when hardware is
available for such testing. Note that many features (e.g., CPUID, and processor identification such as
family, model, stepping, and vendor frequency) are based on Intel chips and may have different corresponding
meanings.

## Does OSHI work on Apple M1 hardware?

OSHI works with native `AArch64` support when JNA is version 5.7.0 or later.

OSHI works using virtual x86 hardware under Rosetta if you are executing an x86-based JVM.

## Does OSHI work on Raspberry Pi hardware?

Yes, most of the Linux code works here and other Pi-specific code has been implemented but has seen
limited testing.  As the developers do not have a Pi to test on, users reporting issues should be
prepared to help test solutions.

## Will you implement ... ?

Maybe!  If you can contribute all the code to implement the feature, it will almost certainly be added.  Even if you can't code but can provide pointers to where the information can be found cross-platform, your feature has a good chance. Otherwise, you can always submit an issue to ask, but are at the mercy of the developers' time, enthusiasm level, and the availability of documentation for the feature.


text:
package ACM.EquilibriumMobile;

import basic.dataStructure.tree.binary.BinaryTree;
import basic.dataStructure.tree.binary.Node;

import java.util.*;
import java.util.stream.Collectors;

/**
 * Created with IntelliJ IDEA.
 * User:ChengLiang
 * Date:2017/7/12
 * Time:11:18
 *

 * 给一个深度不超过16的二叉树,代表一个天平。每根杆都悬挂在中间,每个秤砣的重量
 * 已知。至少修改多少个秤砣的重量才能让天平平衡?如图6-23所示,把7改成3即可。
 *

 * Equilibrium Mobile, NWERC 2008, UVa12166
 *

 * 原题:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3318
 *

 * Sample Input
 * 3
 * [[3,7],6]
 * 40
 * [[2,3],[4,5]]
 * Sample Output
 * 1
 * 0
 * 3
 */
public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        solution.case1();
        solution.case2();
        solution.case3();
        solution.case4();
    }

    private void case1() {
        change("[[3,7],6]");
    }

    private void case2() {
        change("40");
    }

    private void case3() {
        change("[[2,3],[4,5]]");
    }

    private void case4() {
        change("[[[10,[[10,[250,890]],[20,[10,8]]]],30],[4,50]]");
    }

    private void change(String desc) {
        Map<Integer, List<Node<Integer>>> nodes = new HashMap<>();
        BinaryTree<Integer> tree = createTree(desc, nodes);
        List<Integer> changes = new ArrayList<>();
        change(tree, nodes, changes);
        Collections.sort(changes);
        System.out.println(changes.get(0));
    }

    private void change(BinaryTree<Integer> tree, Map<Integer, List<Node<Integer>>> nodes, List<Integer> changes) {
        Node<Integer> root = tree.getRoot();
        if (root.getValue() > 0) {
            changes.add(0);
            return;
        }
        List<Node<Integer>> currentLevelNodes;
        for (Map.Entry<Integer, List<Node<Integer>>> entry : nodes.entrySet()) {
            currentLevelNodes = entry.getValue();
            changes.addAll(currentLevelNodes.stream().map(node -> change(tree, node, entry.getKey())).collect(Collectors.toList()));
        }
    }

    private Integer change(BinaryTree<Integer> tree, Node<Integer> node, int level) {
        return change(tree.getRoot(), node.getValue() * ((int) Math.pow(2, level - 1)), 0);
    }

    private int change(Node<Integer> node, int sum, int count) {
        sum >>= 1;
        Node<Integer> left = node.getLeft();
        if (left.getValue() > 0) {
            if (left.getValue() != sum) {
                count++;
            }
        } else {
            count = change(left, sum, count);
        }
        Node<Integer> right = node.getRight();
        if (right.getValue() > 0) {
            if (right.getValue() != sum) {
                count++;
            }
        } else {
            count = change(right, sum, count);
        }
        return count;
    }

    private BinaryTree<Integer> createTree(String desc, Map<Integer, List<Node<Integer>>> nodes) {
        int level = 1;
        BinaryTree<Integer> tree = new BinaryTree<>();
        if (desc.startsWith("[") && desc.endsWith("]")) {
            Node<Integer> root = new Node<>(-1);
            tree.setRoot(root);
            String childDesc = desc.substring(1, desc.length() - 1);
            int p = indexSplit(childDesc);
            if (p >= 0) {
                Node<Integer> left = new Node<>(-1);
                root.setLeft(left);
                createTree(childDesc.substring(0, p), left, nodes, level + 1);
                Node<Integer> right = new Node<>(-1);
                root.setRight(right);
                createTree(childDesc.substring(p + 1), right, nodes, level + 1);
            }
        } else {
            Node<Integer> node = new Node<>(Integer.valueOf(desc));
            addNode(nodes, node, level);
            tree.setRoot(node);
        }
        return tree;
    }

    private void addNode(Map<Integer, List<Node<Integer>>> nodes, Node<Integer> node, int level) {
        List<Node<Integer>> cell = nodes.get(level);
        if (cell == null) {
            cell = new ArrayList<>();
            nodes.put(level, cell);
        }
        cell.add(node);
    }

    private void createTree(String desc, Node<Integer> node, Map<Integer, List<Node<Integer>>> nodes, int level) {
        if (desc.startsWith("[") && desc.endsWith("]")) {
            String childDesc = desc.substring(1, desc.length() - 1);
            int p = indexSplit(childDesc);
            if (p >= 0) {
                Node<Integer> left = new Node<>(-1);
                node.setLeft(left);
                createTree(childDesc.substring(0, p), left, nodes, level + 1);
                Node<Integer> right = new Node<>(-1);
                node.setRight(right);
                createTree(childDesc.substring(p + 1), right, nodes, level + 1);
            }
        } else {
            node.setValue(Integer.valueOf(desc));
            addNode(nodes, node, level);
        }
    }

    private int indexSplit(String desc) {
        if (!desc.startsWith("[")) {
            return desc.indexOf(",");
        }
        int ls = -1;
        int rs = -1;
        int offset = 0;
        char[] chars = desc.toCharArray();
        for (char c : chars) {
            if (c == '[') {
                if (ls < 0) {
                    ls = 0;
                }
                ls++;
            }

            if (c == ']') {
                if (rs < 0) {
                    rs = 0;
                }
                rs++;
            }

            if (rs > 0 && rs == ls) {
                return offset + 1;
            }
            offset++;
        }
        return -1;
    }
}


text:
<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/

// Authentication routes...
Route::get('login', 'Auth\AuthController@getLogin');
Route::post('login', 'Auth\AuthController@postLogin');
Route::get('logout', 'Auth\AuthController@getLogout');

// Registration routes...
// Route::get('auth/register', 'Auth\AuthController@getRegister');
// Route::post('auth/register', 'Auth\AuthController@postRegister');

Route::get('/', ['uses' => 'ThemeController@home', 'as' => 'home']);
Route::get('/نوشته-ها', ['uses' => 'ThemeController@writings', 'as' => 'writings']);
Route::get('/articles/{slug}', ['uses' => 'ThemeController@singular', 'as' => 'singular']);
Route::get('/نوشته-ها/{slug}', ['uses' => 'ThemeController@writing', 'as' => 'writing']);
Route::get('/projects', ['uses' => 'ThemeController@projects', 'as' => 'projects']);
Route::get('/portfolios', ['uses' => 'ThemeController@portfolio', 'as' => 'portfolios']);
Route::get('/about', ['uses' => 'ThemeController@about', 'as' => 'about']);
Route::get('/contact', ['uses' => 'ThemeController@contact', 'as' => 'contact']);
Route::post('/contact', ['uses' => 'ContactController@store', 'as' => 'store_contact']);
Route::get('/support', ['uses' => 'ThemeController@support', 'as' => 'support']);


text:
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">shanbei</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>

</resources>