<!DOCTYPE html >

          <meta http-equiv="X-UA-Compatible" content="IE=edge" />
          <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
          <title></title>
          <meta name="description" content="" />
          <meta name="keywords" content="" />
          <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

      <link href="../../lib/index.css" media="screen" type="text/css" rel="stylesheet" />
      <link href="../../lib/template.css" media="screen" type="text/css" rel="stylesheet" />
      <link href="../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css" />

        < Back

            <input autocapitalize="none" placeholder="Search" id="index-input" type="text" accesskey="/" />
            
            

Packages

        

        package

        root

Definition Classes

root

        

        package

        provingground

This is work towards automated theorem proving based on learning, using
homotopy type theory (HoTT) as foundations and natural language processing.

This is work towards automated theorem proving based on learning, using
homotopy type theory (HoTT) as foundations and natural language processing.

The implementation of homotopy type theory is split into:

the object HoTT with terms, types, functions and dependent functions, pairs etc

the package induction with general inductive types and recursion/induction on these.

The learning package has the code for learning.

Scala code, including the spire library, is integrated with homotopy type theory
in the scalahott package

We have implemented a functor based approach to translation in the translation
package, used for nlp as well as serialization and parsing.

The library package is contains basic structures implemented in HoTT.

Definition Classes

root

        

        package

        interface

Definition Classes

provingground

                        AkkaParserService

                        Amm

                        AmmScriptServer

                        AmmService

                        Blender

                        ConciseTermJson

                        ContextJson

                        ContextPack

                        Display

                        FallbackDisplay

                        FallbackPrinter

                        FileName

                        Header

                        HttpServer

                        IndexedIndMod

                        InducJson

                        InducPack

                        JsFunc

                        LeanBug

                        LeanCodeGen

                        LeanContextException

                        LeanInterface

                        LeanParse

                        LeanParser

                        LeanParserEq

                        LeanResources

                        LeanRoutes

                        LeanToTerm

                        LeanToTermMonix

                        LeanToTermMut

                        MDocService

                        MantleCask

                        MantleRoutes

                        MantleServer

                        MantleService

                        MonoidServer

                        MsgFunc

                        MultiTask

                        NLPParser

                        NewParseDiffersException

                        NoConstantException

                        NoIndexedInducE

                        ParserCask

                        ParserRoutes

                        Printer

                        QDI

                        RecFoldException

                        RecFuncException

                        ReflPickle

                        ReplCask

                        Sampler

                        ScriptServer

                        ServerStart

                        SimpleIndMod

                        Site

                        SvgPlot

                        TaskSocket

                        TermBson

                        TermIndMod

                        TermJson

                        TermObj

                        TermPack

                        TermSampler

                        Tuts

                        UnParsedException

                        WebServer

                        WordNet

o

provingground.interface

ContextPack

        

        object

        ContextPack

            Linear Supertypes

AnyRef, Any

          

            <input id="mbrsel-input" placeholder="Filter all members" type="text" accesskey="/" />

          

            Ordering

Alphabetic

By Inheritance

                  Inherited

ContextPack

AnyRef

Any

Hide All

Show All

              Visibility

Public

All

Value Members

        

        final
        def

        !=(arg0: Any): Boolean

Definition Classes

AnyRef → Any

        

        final
        def

        ##(): Int

Definition Classes

AnyRef → Any

        

        final
        def

        ==(arg0: Any): Boolean

Definition Classes

AnyRef → Any

        

        final
        def

        asInstanceOf[T0]: T0

Definition Classes

Any

        

        def

        clone(): AnyRef

Attributes

protected[lang]

Definition Classes

AnyRef

Annotations

                @throws(

      ...
    )

                @native()

        

        final
        def

        eq(arg0: AnyRef): Boolean

Definition Classes

AnyRef

        

        def

        equals(arg0: Any): Boolean

Definition Classes

AnyRef → Any

        

        def

        finalize(): Unit

Attributes

protected[lang]

Definition Classes

AnyRef

Annotations

                @throws(

      classOf[java.lang.Throwable]
    )

        

        def

        fromMsg(msg: Msg): Context

        

        final
        def

        getClass(): Class[_]

Definition Classes

AnyRef → Any

Annotations

                @native()

        

        def

        hashCode(): Int

Definition Classes

AnyRef → Any

Annotations

                @native()

        

        final
        def

        isInstanceOf[T0]: Boolean

Definition Classes

Any

        

        final
        def

        ne(arg0: AnyRef): Boolean

Definition Classes

AnyRef

        

        final
        def

        notify(): Unit

Definition Classes

AnyRef

Annotations

                @native()

        

        final
        def

        notifyAll(): Unit

Definition Classes

AnyRef

Annotations

                @native()

        

        final
        def

        synchronized[T0](arg0: ⇒ T0): T0

Definition Classes

AnyRef

        

        def

        toMsg(ctx: Context): Msg

        

        def

        toString(): String

Definition Classes

AnyRef → Any

        

        final
        def

        wait(): Unit

Definition Classes

AnyRef

Annotations

                @throws(

      ...
    )

        

        final
        def

        wait(arg0: Long, arg1: Int): Unit

Definition Classes

AnyRef

Annotations

                @throws(

      ...
    )

        

        final
        def

        wait(arg0: Long): Unit

Definition Classes

AnyRef

Annotations

                @throws(

      ...
    )

                @native()

Inherited from AnyRef

Inherited from Any

Ungrouped


// Copyright 2016 Google Inc. All Rights Reserved.
//
// 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.

// TODO(jba): document in CONTRIBUTING.md that service account must be given "Logs Configuration Writer" IAM role for sink tests to pass.
// TODO(jba): [cont] (1) From top left menu, go to IAM & Admin. (2) In Roles dropdown for acct, select Logging > Logs Configuration Writer. (3) Save.
// TODO(jba): Also, cloud-logs@google.com must have Owner permission on the GCS bucket named for the test project.

package logging

import (
	"log"
	"reflect"
	"testing"

	"cloud.google.com/go/internal/testutil"
	"cloud.google.com/go/storage"
	"golang.org/x/net/context"
	"google.golang.org/api/iterator"
	"google.golang.org/api/option"
)

const testSinkIDPrefix = "GO-CLIENT-TEST-SINK"

var testSinkDestination string

// Called just before TestMain calls m.Run.
// Returns a cleanup function to be called after the tests finish.
func initSinks(ctx context.Context) func() {
	// Create a unique GCS bucket so concurrent tests don't interfere with each other.
	testBucketPrefix := testProjectID + "-log-sink"
	testBucket := uniqueID(testBucketPrefix)
	testSinkDestination = "storage.googleapis.com/" + testBucket
	var storageClient *storage.Client
	if integrationTest {
		// Create a unique bucket as a sink destination, and give the cloud logging account
		// owner right.
		ts := testutil.TokenSource(ctx, storage.ScopeFullControl)
		var err error
		storageClient, err = storage.NewClient(ctx, option.WithTokenSource(ts))
		if err != nil {
			log.Fatalf("new storage client: %v", err)
		}
		bucket := storageClient.Bucket(testBucket)
		if err := bucket.Create(ctx, testProjectID, nil); err != nil {
			log.Fatalf("creating storage bucket %q: %v", testBucket, err)
		}
		if err := bucket.ACL().Set(ctx, "group-cloud-logs@google.com", storage.RoleOwner); err != nil {
			log.Fatalf("setting owner role: %v", err)
		}
	}
	// Clean up from aborted tests.
	for _, sID := range expiredUniqueIDs(sinkIDs(ctx), testSinkIDPrefix) {
		client.DeleteSink(ctx, sID) // ignore error
	}
	if integrationTest {
		for _, bn := range expiredUniqueIDs(bucketNames(ctx, storageClient), testBucketPrefix) {
			storageClient.Bucket(bn).Delete(ctx) // ignore error
		}
		return func() {
			if err := storageClient.Bucket(testBucket).Delete(ctx); err != nil {
				log.Printf("deleting %q: %v", testBucket, err)
			}
			storageClient.Close()
		}
	}
	return func() {}
}

// Collect all sink IDs for the test project.
func sinkIDs(ctx context.Context) []string {
	var IDs []string
	it := client.Sinks(ctx)
loop:
	for {
		s, err := it.Next()
		switch err {
		case nil:
			IDs = append(IDs, s.ID)
		case iterator.Done:
			break loop
		default:
			log.Printf("listing sinks: %v", err)
			break loop
		}
	}
	return IDs
}

// Collect the name of all buckets for the test project.
func bucketNames(ctx context.Context, client *storage.Client) []string {
	var names []string
	it := client.Buckets(ctx, testProjectID)
loop:
	for {
		b, err := it.Next()
		switch err {
		case nil:
			names = append(names, b.Name)
		case iterator.Done:
			break loop
		default:
			log.Printf("listing buckets: %v", err)
			break loop
		}
	}
	return names
}

func TestCreateDeleteSink(t *testing.T) {
	ctx := context.Background()
	sink := &Sink{
		ID:          uniqueID(testSinkIDPrefix),
		Destination: testSinkDestination,
		Filter:      testFilter,
	}
	got, err := client.CreateSink(ctx, sink)
	if err != nil {
		t.Fatal(err)
	}
	defer client.DeleteSink(ctx, sink.ID)
	if want := sink; !reflect.DeepEqual(got, want) {
		t.Errorf("got %+v, want %+v", got, want)
	}
	got, err = client.Sink(ctx, sink.ID)
	if err != nil {
		t.Fatal(err)
	}
	if want := sink; !reflect.DeepEqual(got, want) {
		t.Errorf("got %+v, want %+v", got, want)
	}

	if err := client.DeleteSink(ctx, sink.ID); err != nil {
		t.Fatal(err)
	}

	if _, err := client.Sink(ctx, sink.ID); err == nil {
		t.Fatal("got no error, expected one")
	}
}

func TestUpdateSink(t *testing.T) {
	ctx := context.Background()
	sink := &Sink{
		ID:          uniqueID(testSinkIDPrefix),
		Destination: testSinkDestination,
		Filter:      testFilter,
	}

	// Updating a non-existent sink creates a new one.
	got, err := client.UpdateSink(ctx, sink)
	if err != nil {
		t.Fatal(err)
	}
	defer client.DeleteSink(ctx, sink.ID)
	if want := sink; !reflect.DeepEqual(got, want) {
		t.Errorf("got %+v, want %+v", got, want)
	}
	got, err = client.Sink(ctx, sink.ID)
	if err != nil {
		t.Fatal(err)
	}
	if want := sink; !reflect.DeepEqual(got, want) {
		t.Errorf("got %+v, want %+v", got, want)
	}

	// Updating an existing sink changes it.
	sink.Filter = ""
	if _, err := client.UpdateSink(ctx, sink); err != nil {
		t.Fatal(err)
	}
	got, err = client.Sink(ctx, sink.ID)
	if err != nil {
		t.Fatal(err)
	}
	if want := sink; !reflect.DeepEqual(got, want) {
		t.Errorf("got %+v, want %+v", got, want)
	}
}

func TestListSinks(t *testing.T) {
	ctx := context.Background()
	var sinks []*Sink
	for i := 0; i < 4; i++ {
		sinks = append(sinks, &Sink{
			ID:          uniqueID(testSinkIDPrefix),
			Destination: testSinkDestination,
			Filter:      testFilter,
		})
	}
	for _, s := range sinks {
		if _, err := client.CreateSink(ctx, s); err != nil {
			t.Fatalf("Create(%q): %v", s.ID, err)
		}
		defer client.DeleteSink(ctx, s.ID)
	}

	it := client.Sinks(ctx)
	msg, ok := testutil.TestIteratorNext(sinks, iterator.Done, func() (interface{}, error) { return it.Next() })
	if !ok {
		t.Fatal(msg)
	}
	// TODO(jba): test exact paging.
}


/*
 * Copyright (C) 2019 Peng fei Pan <panpfpanpf@outlook.me>
 *
 * 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.
 */

package me.panpf.sketch.decode;

import androidx.annotation.NonNull;

import java.text.DecimalFormat;

import me.panpf.sketch.SLog;

public class DecodeTimeAnalyze {
    private volatile static long decodeCount;
    private volatile static long useTimeCount;
    private static DecimalFormat decimalFormat;

    public long decodeStart() {
        return System.currentTimeMillis();
    }

    public synchronized void decodeEnd(long startTime, @NonNull String logName, String key) {
        long useTime = System.currentTimeMillis() - startTime;
        if ((Long.MAX_VALUE - decodeCount) < 1 || (Long.MAX_VALUE - useTimeCount) < useTime) {
            decodeCount = 0;
            useTimeCount = 0;
        }
        decodeCount++;
        useTimeCount += useTime;
        if (decimalFormat == null) {
            decimalFormat = new DecimalFormat("#.##");
        }
        SLog.d(logName, "decode use time %dms, average %sms. %s",
                useTime, decimalFormat.format((double) useTimeCount / decodeCount), key);
    }
}


# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-17.04"

  config.vm.provision :shell, path: "install-jdk8.sh"
  config.vm.provision :shell, path: "install-perf.sh"
  config.vm.provision :shell, path: "install-bcc.sh"
  config.vm.provision :shell, path: "init.sh"

  config.vm.network :forwarded_port, guest: 8080, host: 18080

  config.vm.provider "virtualbox" do |v|
    v.memory = 2048
    v.cpus = 4
  end
end


The MIT License (MIT)

Copyright (c) 2013 Rokas Šleinius (raveren@gmail.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


session_name: figure-3-cifar10-2000-vat
windows:
        - window_name: experiments
          layout: even-vertical
          shell_command_before: cd /root/realistic-ssl-evaluation
          panes:
                  - CUDA_VISIBLE_DEVICES=0 python3 train_model.py --verbosity=0 --primary_dataset_name='cifar10' --secondary_dataset_name='cifar10' --root_dir=/mnt/experiment-logs/figure-3-cifar10-2000-vat --n_labeled=2000 --consistency_model=vat --hparam_string=""  2>&1 | tee /mnt/experiment-logs/figure-3-cifar10-2000-vat_train.log
                  - CUDA_VISIBLE_DEVICES=1 python3 evaluate_model.py --split=test --verbosity=0 --primary_dataset_name='cifar10' --root_dir=/mnt/experiment-logs/figure-3-cifar10-2000-vat --consistency_model=vat --hparam_string=""  2>&1 | tee /mnt/experiment-logs/figure-3-cifar10-2000-vat_eval_test.log
                  - CUDA_VISIBLE_DEVICES=2 python3 evaluate_model.py --split=valid --verbosity=0 --primary_dataset_name='cifar10' --root_dir=/mnt/experiment-logs/figure-3-cifar10-2000-vat --consistency_model=vat --hparam_string=""  2>&1 | tee /mnt/experiment-logs/figure-3-cifar10-2000-vat_eval_valid.log
                  - CUDA_VISIBLE_DEVICES=3 python3 evaluate_model.py --split=train --verbosity=0 --primary_dataset_name='cifar10' --root_dir=/mnt/experiment-logs/figure-3-cifar10-2000-vat --consistency_model=vat --hparam_string=""  2>&1 | tee /mnt/experiment-logs/figure-3-cifar10-2000-vat_eval_train.log


chat_unreadMessagesStartText=-620756993
chat_inFileBackgroundSelected=-12757128
windowBackgroundChecked=-13666645
radioBackgroundChecked=-12015889
dialogTextBlue=-10177041
chat_inTextSelectionHighlight=1515107571
chat_inSentClockSelected=-7490861
avatar_backgroundActionBarGreen=-14602949
chat_goDownButtonCounterBackground=-11425042
actionBarActionModeDefault=-14211289
actionBarActionModeDefaultTop=-14277082
chats_menuPhone=-1815557944
chat_outViews=-7357217
chat_secretTimerBackground=-1239540194
avatar_actionBarSelectorCyan=-12758164
chat_outViaBotNameText=-5448193
chat_botKeyboardButtonText=-1
profile_actionPressedBackground=-8994579
key_chat_messagePanelVoiceLock=-1
chat_secretChatStatusText=-8553090
switchTrack=-10461088
chat_inPreviewInstantSelectedText=-5648402
chat_attachAudioBackground=-626837
location_sendLocationBackground=-9919529
actionBarDefaultSubmenuBackground=-14145495
switchTrackBlueThumb=-14803424
avatar_nameInMessageViolet=-6643205
emptyListPlaceholder=-8553091
chat_inAudioSelectedProgress=-1
chats_nameMessage=-1315861
chat_messagePanelShadow=2030043136
chat_inMediaIcon=-1
actionBarDefaultArchived=-14145495
avatar_subtitleInProfileViolet=-7628894
chat_messagePanelCancelInlineBot=-8553090
dialogSearchBackground=-13816531
chat_outAudioSeekbarFill=-1
actionBarWhiteSelector=285212671
chat_botKeyboardButtonBackgroundPressed=-11974325
player_time=-8553091
chat_outFileProgressSelected=-1
chat_outTimeSelectedText=-7023626
chat_inFileProgressSelected=-1
changephoneinfo_image=-11184811
chat_inAudioPerfomerText=-8618883
player_button=-1
key_sheet_other=1140850687
chat_inContactNameText=-8796932
chats_menuPhoneCats=-8224126
chat_outPreviewLine=-6631937
dialogScrollGlow=-657931
chat_messagePanelHint=-9408399
windowBackgroundGray=-16119286
chat_inViaBotNameText=-8796932
chat_outVoiceSeekbar=-10245406
player_actionBarTitle=-1
dialogGrayLine=-12040120
chat_outFileIcon=-12689015
chats_nameMessage_threeLines=-1315861
chat_adminText=-8355711
chat_inFileProgress=-1
dialogIcon=-7566196
chat_emojiPanelEmptyText=-8553090
chat_emojiPanelBackspace=-9539985
chat_replyPanelClose=-9539985
chat_inContactPhoneSelectedText=-7490861
dialogSearchText=-1
actionBarTabUnactiveText=-7434609
chat_outAudioTitleText=-1
chat_emojiPanelBackground=-14803425
chats_unreadCounter=-13000973
groupcreate_hintText=-8553091
chat_inReplyMediaMessageSelectedText=-7490861
avatar_actionBarSelectorOrange=-12758164
dialogCheckboxSquareUnchecked=-10855846
chat_inMediaIconSelected=-1
chat_inBubble=-14540253
chat_outSentCheckRead=-5841921
chat_emojiPanelStickerPackSelector=181267199
chat_unreadMessagesStartArrowIcon=-9605777
avatar_backgroundActionBarOrange=-14602949
windowBackgroundWhiteBlackText=-1
avatar_backgroundActionBarBlue=-14737632
dialogTextLink=-10177041
chat_recordTime=-1
chat_status=-9126407
windowBackgroundWhiteBlueHeader=-9652488
files_folderIconBackground=-10637333
chat_messagePanelVoiceBackground=-12284980
passport_authorizeBackgroundSelected=-11627561
switchTrackBlueChecked=-8924673
sharedMedia_linkPlaceholderText=-9474192
player_seekBarBackground=1196577362
dialogShadowLine=335544320
groupcreate_onlineText=-10177041
profile_status=-9846276
divider=-16777216
chat_topPanelLine=-10771485
chat_inReplyMessageText=-1
dialogInputField=-8553091
windowBackgroundWhiteInputFieldActivated=-9522449
chat_attachGalleryBackground=-11692299
chat_outInstantSelected=-1
chat_outSentCheck=-251658241
key_graySectionText=-8158332
player_placeholder=-10197916
chat_outFileSelectedIcon=-13925429
picker_disabledButton=-11047552
groupcreate_spanBackground=-13816531
dialogButton=-10177041
contextProgressInner1=-11184811
chat_inLoaderPhotoIconSelected=-1
actionBarDefaultSubtitle=-7895161
chat_inContactPhoneText=-8355711
chat_inlineResultIcon=-8796932
chat_outBubbleGradientSelectedOverlay=352321535
chats_draft=-637778102
dialogLineProgress=-11032346
listSelector=771751936
chat_outPreviewInstantText=-1
chat_inMenuSelected=-1517440301
avatar_backgroundOrange=-869276
avatar_actionBarSelectorGreen=-12758164
chat_outLocationIcon=-1
chat_inLoaderSelected=-11297295
location_liveLocationProgress=-9919529
dialogTextRed=-1152913
chat_inBubbleShadow=838860800
chat_outAudioProgress=-1
dialogProgressCircle=-10177041
stickers_menu=-10724260
avatar_subtitleInProfilePink=-7628894
player_progress=-11292689
chat_inReplyLine=-8796932
chat_inAudioPerfomerSelectedText=-7490861
dialogBackground=-14803426
dialogLineProgressBackground=-10132123
chat_inReplyNameText=-8796932
chat_outAudioPerfomerSelectedText=-7023626
actionBarActionModeDefaultIcon=-1
windowBackgroundWhiteRedText4=-3187617
chat_goDownButtonIcon=-1
windowBackgroundWhiteRedText5=-1152913
chats_onlineCircle=-13130503
chat_outAudioSelectedProgress=-1
chat_messageTextOut=-328966
chat_inInstant=-8796932
groupcreate_cursor=-10177041
avatar_backgroundSaved=-11558424
returnToCallBackground=-10639897
checkboxSquareUnchecked=-11245959
dialogCheckboxSquareDisabled=-12040120
player_actionBar=-14671840
chat_fieldOverlayText=-10177041
chat_messagePanelSend=-11752972
chats_sentReadCheck=-12145165
switchThumb=-12034697
windowBackgroundWhiteRedText2=-955034
passport_authorizeBackground=-12352582
chats_nameIcon=-1250068
chat_inSentClock=-10263709
key_chats_menuTopShadow=789516
avatar_nameInMessageRed=-21124
chat_outLoaderPhoto=-12623479
chat_botSwitchToInlineText=-8796932
dialogTextRed2=-1152913
chats_nameMessageArchived=-8553091
avatar_nameInMessageOrange=-13984
chats_pinnedIcon=-10197916
chat_attachActiveTab=-9781249
chat_replyPanelLine=1779898909
avatar_subtitleInProfileOrange=-7628894
chat_outSentCheckSelected=-5841921
dialogSearchHint=-8421505
chat_inVenueInfoSelectedText=-7490861
dialogTextBlue2=-10177041
actionBarDefaultArchivedSelector=-12698049
avatar_backgroundGroupCreateSpanBlue=-12829636
dialogTextBlue3=-10177041
switchTrackBlueThumbChecked=-13794621
dialogTextBlue4=-10177041
chat_attachUnactiveTab=-9596506
windowBackgroundWhiteGreenText=-10371737
actionBarTabActiveText=-10698241
chat_emojiPanelIcon=-9539985
chat_topPanelMessage=-7895160
chat_emojiSearchIcon=-9211020
chat_emojiPanelTrendingDescription=-8553090
calls_callReceivedGreenIcon=-12001930
chats_pinnedOverlay=16777215
windowBackgroundWhiteInputField=-11513776
avatar_backgroundRed=-2326437
chat_emojiPanelIconSelector=-10177041
chat_emojiPanelBadgeBackground=-11291403
chat_inForwardedNameText=-8930052
chats_actionBackground=-10575653
avatar_nameInMessageGreen=-7018619
chat_outContactNameText=-1
chat_TextSelectionCursor=-11028499
chat_inSiteNameText=-8796932
chat_linkSelectBackground=1516415459
chats_archivePullDownBackground=-14145496
windowBackgroundWhiteBlueText=-10177041
avatar_nameInMessageCyan=-10623523
chat_inLocationBackground=-12829636
radioBackground=-1635939431
contextProgressOuter1=-11555592
chat_inFileIcon=-14145496
avatar_backgroundActionBarPink=-14602949
dialogTextGray3=-8553091
dialogTextGray2=-8553091
dialogTextGray4=-8553091
chat_searchPanelIcons=-2565927
windowBackgroundWhiteLinkText=-11032608
chat_inAudioSeekbarSelected=-9203285
chat_emojiPanelStickerPackSelectorLine=-10177041
chat_outVenueInfoText=-7023626
chat_outContactPhoneText=-7023626
chat_inAudioTitleText=-8796932
chat_messageLinkIn=-8796932
chats_menuBackground=-15132390
windowBackgroundCheckText=-1
chat_serviceBackground=-1774766281
chats_secretIcon=-9316522
chat_inFileBackground=-13882324
chat_inBubbleSelected=-13546911
chat_mediaMenu=-1
chat_outViewsSelected=-4268038
chat_outInstant=-1
chat_emojiPanelShadowLine=-1610612736
actionBarActionModeDefaultSelector=-12698050
chat_outForwardedNameText=-5448193
dialogRoundCheckBox=-10177041
chat_emojiPanelTrendingTitle=-1
actionBarTabLine=-12339201
switchThumbChecked=-10376479
chat_stickersHintPanel=-14606046
chat_outSiteNameText=-1
windowBackgroundWhite=-15198183
chat_outUpCall=-1
groupcreate_offlineText=-8549479
chat_inVoiceSeekbarSelected=-9203285
dialogTextGray=-8553091
chat_messageLinkOut=-5316609
chats_nameArchived=-5592406
avatar_backgroundArchived=-12829636
picker_badge=-11097097
chat_outFileInfoSelectedText=-4268038
chats_tabletSelectedOverlay=268435455
chat_outAudioDurationSelectedText=-7023626
avatar_backgroundArchivedHidden=-12279320
chat_attachCameraIcon1=-32171
undo_background=-181917656
avatar_actionBarSelectorPink=-12758164
dialogTextHint=-8553091
chat_topPanelTitle=-10638868
chat_inAudioCacheSeekbar=-10461088
chat_outContactIcon=-1
chat_inFileInfoText=-9013641
avatar_subtitleInProfileBlue=-7566195
key_chat_messagePanelVoiceLockShadow=0
chat_inPreviewLine=-8796932
profile_creatorIcon=-10177041
profile_actionBackground=-11560229
avatar_subtitleInProfileGreen=-7628894
chats_sentCheck=-12145165
chats_unreadCounterMuted=-12237499
chat_outVoiceSeekbarFill=-1
chat_outReplyLine=-8466689
chat_messagePanelIcons=-8947847
chat_inReplyMediaMessageText=-8355711
inappPlayerTitle=-8553090
chat_emojiPanelIconSelected=-10177041
progressCircle=-10177027
chat_inContactBackground=-11494936
chat_botKeyboardButtonBackground=-13882322
chats_menuItemIcon=-8224126
chat_outVenueInfoSelectedText=-7023626
wallpaperFileOffset=-1
chat_outBubbleShadow=838860800
chat_outVenueNameText=-3019777
checkboxSquareBackground=-10177051
chat_mediaSentClock=-1291845633
files_folderIcon=-1
chat_outTextSelectionHighlight=2122236141
chats_menuCloudBackgroundCats=-11232035
switchTrackBlue=-9934742
chat_topPanelClose=-10461087
profile_adminIcon=-8549479
chats_verifiedBackground=-12145929
chat_inTimeSelectedText=-7490861
chat_outFileBackgroundSelected=520093695
chat_outVoiceSeekbarSelected=-9263908
windowBackgroundWhiteGrayIcon=-8553091
avatar_backgroundActionBarViolet=-14602949
profile_verifiedCheck=-1
listSelectorSDK21=234881023
key_chat_messagePanelVoiceLockBackground=-14606046
chat_outFileNameText=-1
picker_enabledButton=-9781249
inappPlayerBackground=-15066597
avatar_nameInMessagePink=-624741
windowBackgroundWhiteGrayText=-8553091
actionBarDefaultSubmenuItemIcon=-8421504
avatar_actionBarSelectorViolet=-12758164
chat_attachPollBackground=-2183099
avatar_nameInMessageBlue=-8796932
dialogTextBlack=-592138
actionBarDefault=-14671838
location_placeLocationBackground=-9919529
profile_actionIcon=-1
windowBackgroundUnchecked=-14803424
actionBarDefaultSelector=-13421772
chats_menuTopShadow=-1541595875
chat_outAudioPerfomerText=-7023626
sharedMedia_startStopLoadIcon=-10177041
chat_serviceBackgroundSelected=1503372718
inappPlayerPlayPause=-10177041
chat_inVenueInfoText=-9013641
checkboxSquareDisabled=1682199394
chat_replyPanelIcons=-11100695
fastScrollInactive=-12500671
chat_outSentClockSelected=-4268038
featuredStickers_addedIcon=-11754001
chat_goDownButtonCounter=-1
switchTrackBlueSelectorChecked=848091135
chat_outFileBackground=520093695
chats_name=-921103
switchTrackBlueSelector=431611386
dialogBadgeBackground=-10177041
chat_outBubbleSelected=-11829841
avatar_backgroundInProfileBlue=-11232035
chat_inFileNameText=-1
inappPlayerPerformer=-1
chat_inInstantSelected=-5648402
chat_outFileInfoText=-7357217
chat_inLocationIcon=-1
groupcreate_checkboxCheck=-1
chat_outContactPhoneSelectedText=-7023626
chat_unreadMessagesStartBackground=-14606046
chat_inLoaderPhoto=-13882324
chat_inFileInfoSelectedText=-7490861
chat_wallpaper=-16316665
chat_outMenuSelected=-541138950
fastScrollActive=-13133079
chat_outLoaderPhotoSelected=-13208924
chat_muteIcon=-10724260
chat_selectedBackground=710909411
chat_inAudioDurationText=-9013641
chat_recordedVoiceBackground=-11690258
chat_secretTimeText=-3289650
groupcreate_sectionText=-8553091
actionBarDefaultSubmenuItem=-1
chats_actionMessage=-10178583
chat_inLoaderPhotoIcon=-1
chat_addContact=-8796932
avatar_actionBarSelectorBlue=-12829636
switchTrackChecked=-12215069
player_placeholderBackground=-13355980
windowBackgroundWhiteHintText=-8553091
chat_inLoader=-11495191
chat_adminSelectedText=-7490861
groupcreate_spanText=-657931
chat_outPreviewInstantSelectedText=-1
player_actionBarSelector=-14013910
key_player_progressCachedBackground=-11184811
chat_outTimeText=-7023626
chat_outBubble=-13210449
avatar_backgroundActionBarCyan=-14602949
chat_attachFileBackground=-10830604
chat_attachHideBackground=-14074026
chats_menuItemText=-184549377
chats_message=-8224126
chat_outReplyNameText=-6301185
chats_menuTopBackgroundCats=-15658477
chat_outReplyMediaMessageText=-7023626
chat_textSelectBackground=1516415459
chat_messagePanelVoiceDelete=-1
chat_inAudioProgress=-1
chats_date=-8882056
chat_messagePanelText=-1
actionBarTabSelector=827876202
key_sheet_scrollUp=637534207
player_buttonActive=-10177041
undo_cancelColor=-9652225
chat_outLoaderPhotoIcon=-1
chat_outContactBackground=-9919529
sharedMedia_linkPlaceholder=-14474460
windowBackgroundWhiteBlueText7=-8796932
chat_outLocationBackground=285212671
windowBackgroundWhiteBlueText3=-11689489
windowBackgroundWhiteBlueText2=-12935187
windowBackgroundWhiteBlueText5=-10177041
windowBackgroundWhiteBlueText4=-10177041
chat_replyPanelMessage=-8553090
stickers_menuSelector=402653183
chat_inViewsSelected=-7490861
chat_emojiBottomPanelIcon=-9539985
windowBackgroundWhiteLinkSelection=1030010365
player_background=-14474461
inappPlayerClose=-8553090
chat_outMediaIcon=-1
chats_message_threeLines=-8224126
player_actionBarSubtitle=-8553091
chat_outAudioCacheSeekbar=-1
chat_attachContactBackground=-2183099
chats_sentClock=-9539986
chat_inAudioSeekbar=-11119018
avatar_subtitleInProfileRed=-7628894
avatar_backgroundActionBarRed=-14602949
dialogSearchIcon=-8882056
chat_inPreviewInstantText=-8796932
chats_archiveBackground=-12219694
dialog_liveLocationProgress=-9919529
chat_inViews=-8355712
chat_outLoaderSelected=-1
dialogButtonSelector=-13158601
chats_archivePinBackground=-13619152
player_actionBarItems=-1
chat_sentError=-633010
player_progressBackground=-12829636
avatar_actionBarSelectorRed=-12758164
chat_inAudioDurationSelectedText=-7490861
windowBackgroundWhiteGrayText2=-9013641
chat_outAudioSeekbarSelected=-562182145
chat_outLoaderPhotoIconSelected=-1
player_actionBarTop=-14671840
windowBackgroundWhiteGrayText8=-8553091
windowBackgroundWhiteGrayText5=-8549479
windowBackgroundWhiteGrayText6=-8553091
windowBackgroundWhiteGrayText3=-8553091
windowBackgroundWhiteGrayText4=-10987432
chat_inTimeText=-8355711
dialogRadioBackground=-10855846
chat_outBubbleGradient=-12874567
chat_outReplyMessageText=-1
chat_recordedVoiceDot=-1221292
chat_messagePanelBackground=-14803425
chat_wallpaper_gradient_to=-15790320
chat_inLoaderPhotoSelected=-14925725
chats_messageArchived=-8224126
chat_inVoiceSeekbarFill=-10177041
graySection=-16053492
chat_outAudioSeekbar=-545404929
chats_muteIcon=-11184811
chat_inVoiceSeekbar=-10263709
chat_outFileProgress=-1
profile_verifiedBackground=-10636552
chat_outLoader=-1
chats_actionPressedBackground=-9388826
windowBackgroundWhiteGreenText2=-10366101
chat_replyPanelName=-10308359
chat_outMediaIconSelected=-1
windowBackgroundWhiteValueText=-529942787
chat_outAudioDurationText=-7023626
chat_outMenu=-7420685
chat_goDownButton=-14606046
chats_secretName=-9316522
chat_inMenu=-10197916
chat_recordVoiceCancel=-8553090
chat_inFileSelectedIcon=-15056797
chat_outReplyMediaMessageSelectedText=-7023626
chat_reportSpam=-1481631
chat_messageTextIn=-328966
dialogRedIcon=-554801041
avatar_subtitleInProfileCyan=-7628894
chats_attachMessage=-8224126
chat_topPanelBackground=-15066597
chat_outSentClock=-8213557
dialogBackgroundGray=-14013910
chat_searchPanelText=-10767620
chat_inContactIcon=-1
statisticChartSignatureAlpha=-1946157057
statisticChartRipple=748994002
statisticChartCheckboxInactive=-6579301
statisticChartBackZoomColor=-12145938
statisticChartChevronColor=-9012091
statisticChartHighlightColor=-2030043137
statisticChartHintLine=452984831
statisticChartLine_red=-832444
statisticChartLine_lightblue=-12814100
statisticChartActivePickerChart=-665229191
statisticChartLine_lightgreen=-7352519
statisticChartLine_golden=-2184161
statisticChartLine_green=-12729793
statisticChartLine_orange=-1457126
statisticChartInactivePickerChart=-667862461
statisticChartSignature=-1214008894
statisticChartLine_blue=-11362305
statisticChartLine_indigo=-7906075
statisticChartActiveLine=855638015


/* Generated by RuntimeBrowser.
 */

@protocol SUClientInterfaceDelegatePrivate <SUClientInterfaceDelegate>

@optional

- (void)clientInterface:(void *)arg1 dismissSafariViewControllerAnimated:(void *)arg2 fromViewController:(void *)arg3 completion:(void *)arg4; // needs 4 arg types, found 8: SUClientInterface *, bool, UIViewController *, id /* block */, /* Warning: Unrecognized filer type: '<' using 'void*' */ void*, void, id /* block */, void*
- (void)clientInterface:(void *)arg1 dismissViewController:(void *)arg2 animated:(void *)arg3 completion:(void *)arg4; // needs 4 arg types, found 8: SUClientInterface *, UIViewController *, bool, id /* block */, /* Warning: Unrecognized filer type: '<' using 'void*' */ void*, void, id /* block */, void*
- (void)clientInterface:(SUClientInterface *)arg1 dispatchOnPageResponseWithData:(NSData *)arg2 response:(NSHTTPURLResponse *)arg3;
- (void)clientInterface:(void *)arg1 dispatchXEvent:(void *)arg2 completionBlock:(void *)arg3; // needs 3 arg types, found 8: SUClientInterface *, NSDictionary *, id /* block */, /* Warning: Unrecognized filer type: '<' using 'void*' */ void*, void, id /* block */, bool, void*
- (bool)clientInterface:(SUClientInterface *)arg1 isAllowedToOpenExternalURL:(NSURL *)arg2;
- (void)clientInterface:(void *)arg1 presentSafariViewControllerWithURL:(void *)arg2 fromViewController:(void *)arg3 animated:(void *)arg4 completion:(void *)arg5; // needs 5 arg types, found 9: SUClientInterface *, NSURL *, UIViewController *, bool, id /* block */, /* Warning: Unrecognized filer type: '<' using 'void*' */ void*, void, id /* block */, void*
- (void)clientInterface:(SUClientInterface *)arg1 willDismissViewController:(UIViewController *)arg2;
- (void)clientInterface:(SUClientInterface *)arg1 willPresentViewController:(UIViewController *)arg2;

@end


//------------------------------------------------------------------------------
// File: DMO.h
//
// Desc: Headers needed by almost all DMOs.
//
// Copyright (c) 1999 - 2001, Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------------------------

#ifndef __DMO_H__
#define __DMO_H__

#include "mediaerr.h"

// When using ATL we get collisions on Lock, so in this case rename
// IMediaObject::Lock to IMediaObject::DMOLock

#ifdef FIX_LOCK_NAME
#define Lock DMOLock
#endif
#include "mediaobj.h"
#ifdef FIX_LOCK_NAME
#undef Lock
#endif
#include "dmoreg.h"
#include "dmort.h"

#endif //__DMO_H__


package uy.klutter.reflect.conversion.jdk8.tests

import org.junit.Test
import uy.klutter.conversion.TypeConversionConfig
import java.time.Instant
import kotlin.test.assertEquals
import kotlin.test.assertTrue

class TestJdk8Converters {
   @Test fun testInstantConversion() {
       val now = Instant.now()
       val nowAsLong = now.toEpochMilli()
       val converter = TypeConversionConfig.defaultConverter

       val convertedToLong: Long = converter.convertValue(now)
       val convertedToInstant: Instant = converter.convertValue(nowAsLong)

       assertEquals(nowAsLong, convertedToLong)
       assertEquals(now, convertedToInstant)
   }
}


//
//     Generated by class-dump 3.5 (64 bit).
//
//     class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2015 by Steve Nygard.
//

#import <Foundation/NSObject.h>

@interface NSEntityMigrationPolicy : NSObject
{
}

- (id)_nonNilValueOrDefaultValueForAttribute:(id)arg1 source:(id)arg2 destination:(id)arg3;
- (_Bool)endEntityMapping:(id)arg1 manager:(id)arg2 error:(id *)arg3;
- (_Bool)performCustomValidationForEntityMapping:(id)arg1 manager:(id)arg2 error:(id *)arg3;
- (_Bool)endRelationshipCreationForEntityMapping:(id)arg1 manager:(id)arg2 error:(id *)arg3;
- (_Bool)createRelationshipsForDestinationInstance:(id)arg1 entityMapping:(id)arg2 manager:(id)arg3 error:(id *)arg4;
- (_Bool)endInstanceCreationForEntityMapping:(id)arg1 manager:(id)arg2 error:(id *)arg3;
- (_Bool)createDestinationInstancesForSourceInstance:(id)arg1 entityMapping:(id)arg2 manager:(id)arg3 error:(id *)arg4;
- (_Bool)beginEntityMapping:(id)arg1 manager:(id)arg2 error:(id *)arg3;

@end


T1 :: forall (f :: * -> *) a. f a -> *
T2 :: forall (f :: * -> *) a. f a -> *
T3 :: forall a (b :: Proxy a) (c :: Proxy b). Proxy '(a, c) -> *
T4 :: forall a (b :: Proxy a) (c :: Proxy b). Proxy '(a, c) -> *
T5 :: forall (f :: * -> *) a. f a -> *
T6 :: forall {k} (f :: k -> *) (a :: k). f a -> *


# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT license.
""" tf2onnx mapping functions for onnx ml domain. """
from tf2onnx import constants
from tf2onnx.handler import tf_op

# pylint: disable=unused-argument,missing-docstring,unnecessary-pass

@tf_op("HashTableV2")
class HashTable:
    @classmethod
    def version_8(cls, ctx, node, **kwargs):
        """ HashTable will be removed """
        pass

@tf_op("LookupTableFindV2")
class LookupTableFind:
    @classmethod
    def version_8(cls, ctx, node, **kwargs):
        """ convert lookup to category mapper """
        table_node = node.inputs[0]
        file_path = table_node.get_attr_value("shared_name")[11:-6]
        cats_int64s = []
        cats_strings = []
        with open(file_path, 'r') as f:
            for i, s in enumerate(f.readlines()):
                cats_int64s.append(i)
                cats_strings.append(s.strip())
        node_name = node.name
        node_inputs = node.input
        node_outputs = node.output
        ctx.remove_node(node.name)
        new_node = ctx.make_node("CategoryMapper", domain=constants.AI_ONNX_ML_DOMAIN,
                                 name=node_name, inputs=node_inputs[1: 2], outputs=node_outputs,
                                 attr={'cats_int64s': cats_int64s, 'cats_strings': cats_strings})
        ctx.set_shape(new_node.name + ":0", [-1])
        customer_nodes = ctx.find_output_consumers(table_node.output[0])
        if len(customer_nodes) == 0:
            ctx.remove_node(table_node.name)


Connection: keep-alive
Content-Length: 0
Date: Fri, 06 Oct 2017 09:57:19 GMT


/* Copyright (c) 2007, Google Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 *     * Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above
 * copyright notice, this list of conditions and the following disclaimer
 * in the documentation and/or other materials provided with the
 * distribution.
 *     * Neither the name of Google Inc. nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * ---
 * Author: Joi Sigurdsson
 *
 * Definition of MiniDisassembler.
 */

#ifndef GOOGLE_PERFTOOLS_MINI_DISASSEMBLER_H_
#define GOOGLE_PERFTOOLS_MINI_DISASSEMBLER_H_

#include "config.h"
#include <windows.h>
#include "mini_disassembler_types.h"

// compatibility shim
#include "base/logging.h"
#define SIDESTEP_ASSERT(cond)  RAW_DCHECK(cond, #cond)
#define SIDESTEP_LOG(msg)      RAW_VLOG(1, msg)

namespace sidestep {

// This small disassembler is very limited
// in its functionality, and in fact does only the bare minimum required by the
// preamble patching utility.  It may be useful for other purposes, however.
//
// The limitations include at least the following:
//  -# No support for coprocessor opcodes, MMX, etc.
//  -# No machine-readable identification of opcodes or decoding of
//     assembly parameters. The name of the opcode (as a string) is given,
//     however, to aid debugging.
//
// You may ask what this little disassembler actually does, then?  The answer is
// that it does the following, which is exactly what the patching utility needs:
//  -# Indicates if opcode is a jump (any kind) or a return (any kind)
//     because this is important for the patching utility to determine if
//     a function is too short or there are jumps too early in it for it
//     to be preamble patched.
//  -# The opcode length is always calculated, so that the patching utility
//     can figure out where the next instruction starts, and whether it
//     already has enough instructions to replace with the absolute jump
//     to the patching code.
//
// The usage is quite simple; just create a MiniDisassembler and use its
// Disassemble() method.
//
// If you would like to extend this disassembler, please refer to the
// IA-32 Intel® Architecture Software Developer’s Manual Volume 2:
// Instruction Set Reference for information about operand decoding
// etc.
class PERFTOOLS_DLL_DECL MiniDisassembler {
 public:

  // Creates a new instance and sets defaults.
  //
  // @param operand_default_32_bits If true, the default operand size is
  // set to 32 bits, which is the default under Win32. Otherwise it is 16 bits.
  // @param address_default_32_bits If true, the default address size is
  // set to 32 bits, which is the default under Win32. Otherwise it is 16 bits.
  MiniDisassembler(bool operand_default_32_bits,
                   bool address_default_32_bits);

  // Equivalent to MiniDisassembler(true, true);
  MiniDisassembler();

  // Attempts to disassemble a single instruction starting from the
  // address in memory it is pointed to.
  //
  // @param start Address where disassembly should start.
  // @param instruction_bytes Variable that will be <b>incremented</b> by
  // the length in bytes of the instruction.
  // @return enItJump, enItReturn or enItGeneric on success.  enItUnknown
  // if unable to disassemble, enItUnused if this seems to be an unused
  // opcode. In the last two (error) cases, cbInstruction will be set
  // to 0xffffffff.
  //
  // @post This instance of the disassembler is ready to be used again,
  // with unchanged defaults from creation time.
  InstructionType Disassemble(unsigned char* start, unsigned int& instruction_bytes);

 private:

  // Makes the disassembler ready for reuse.
  void Initialize();

  // Sets the flags for address and operand sizes.
  // @return Number of prefix bytes.
  InstructionType ProcessPrefixes(unsigned char* start, unsigned int& size);

  // Sets the flag for whether we have ModR/M, and increments
  // operand_bytes_ if any are specifies by the opcode directly.
  // @return Number of opcode bytes.
  InstructionType ProcessOpcode(unsigned char* start,
                                unsigned int table,
                                unsigned int& size);

  // Checks the type of the supplied operand.  Increments
  // operand_bytes_ if it directly indicates an immediate etc.
  // operand.  Asserts have_modrm_ if the operand specifies
  // a ModR/M byte.
  bool ProcessOperand(int flag_operand);

  // Increments operand_bytes_ by size specified by ModR/M and
  // by SIB if present.
  // @return 0 in case of error, 1 if there is just a ModR/M byte,
  // 2 if there is a ModR/M byte and a SIB byte.
  bool ProcessModrm(unsigned char* start, unsigned int& size);

  // Processes the SIB byte that it is pointed to.
  // @param start Pointer to the SIB byte.
  // @param mod The mod field from the ModR/M byte.
  // @return 1 to indicate success (indicates 1 SIB byte)
  bool ProcessSib(unsigned char* start, unsigned char mod, unsigned int& size);

  // The instruction type we have decoded from the opcode.
  InstructionType instruction_type_;

  // Counts the number of bytes that is occupied by operands in
  // the current instruction (note: we don't care about how large
  // operands stored in registers etc. are).
  unsigned int operand_bytes_;

  // True iff there is a ModR/M byte in this instruction.
  bool have_modrm_;

  // True iff we need to decode the ModR/M byte (sometimes it just
  // points to a register, we can tell by the addressing mode).
  bool should_decode_modrm_;

  // Current operand size is 32 bits if true, 16 bits if false.
  bool operand_is_32_bits_;

  // Default operand size is 32 bits if true, 16 bits if false.
  bool operand_default_is_32_bits_;

  // Current address size is 32 bits if true, 16 bits if false.
  bool address_is_32_bits_;

  // Default address size is 32 bits if true, 16 bits if false.
  bool address_default_is_32_bits_;

  // Determines if 64 bit operands are supported (x64).
  bool operand_default_support_64_bits_;

  // Current operand size is 64 bits if true, 32 bits if false.
  bool operand_is_64_bits_;

  // Huge big opcode table based on the IA-32 manual, defined
  // in Ia32OpcodeMap.cc
  static const OpcodeTable s_ia32_opcode_map_[];

  // Somewhat smaller table to help with decoding ModR/M bytes
  // when 16-bit addressing mode is being used.  Defined in
  // Ia32ModrmMap.cc
  static const ModrmEntry s_ia16_modrm_map_[];

  // Somewhat smaller table to help with decoding ModR/M bytes
  // when 32-bit addressing mode is being used.  Defined in
  // Ia32ModrmMap.cc
  static const ModrmEntry s_ia32_modrm_map_[];

  // Indicators of whether we got certain prefixes that certain
  // silly Intel instructions depend on in nonstandard ways for
  // their behaviors.
  bool got_f2_prefix_, got_f3_prefix_, got_66_prefix_;
};

};  // namespace sidestep

#endif  // GOOGLE_PERFTOOLS_MINI_DISASSEMBLER_H_


--
-- tests/actions/vstudio/cs2005/test_common_props.lua
-- Check Visual Studio 2012 extensions to the project properties block.
-- Copyright (c) 2013 Jason Perkins and the Premake project
--

	local p = premake
	local suite = test.declare("vs2012_csproj_common_props")
	local dn2005 = p.vstudio.dotnetbase

--
-- Setup
--

	local wks, prj

	function suite.setup()
		p.action.set("vs2012")
		wks = test.createWorkspace()
		language "C#"
	end

	local function prepare()
		prj = test.getproject(wks, 1)
		dn2005.commonProperties(prj)
	end

---
-- Visual Studio 2012 omits <ProductVersion> and <SchemaVersion>.
---

	function suite.onDefaultCommonProps()
		prepare()
		test.capture [[
	<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
		]]
	end


import {applyDecorators} from "@tsed/core";
import {IDIResolver, ProviderScope, ProviderType, TokenProvider} from "../interfaces";
import {Configuration} from "./configuration";
import {Injectable} from "./injectable";

export interface IModuleOptions extends Omit<TsED.Configuration, "scopes"> {
  /**
   * Provider scope
   */
  scope?: ProviderScope;
  /**
   * Providers must be initialized before building this module
   */
  imports?: TokenProvider[];
  /**
   * Explicit token must be injected in the constructor
   */
  deps?: TokenProvider[];
  /**
   * A list of resolvers to inject provider from external DI.
   */
  resolvers?: IDIResolver[];

  /**
   * Additional properties are stored as provider configuration.
   */
  [key: string]: any;
}

/**
 * Declare a new Ts.ED module
 *
 * ## Options
 * - imports: List of Provider which must be built by injector before invoking the module
 * - resolvers: List of external DI must be used to resolve unknown provider
 * - deps: List of provider must be injected to the module constructor (explicit declaration)
 *
 * @param options
 * @decorator
 */
export function Module(options: Partial<IModuleOptions> = {}) {
  const {scopes, imports, resolvers, deps, scope, ...configuration} = options;

  return applyDecorators(
    Configuration(configuration),
    Injectable({
      type: ProviderType.MODULE,
      scope: ProviderScope.SINGLETON,
      imports,
      deps,
      injectable: false,
      resolvers
    })
  );
}


// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you 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.

#include "geo/wkt_parse.h"

#include "geo/wkt_parse_ctx.h"
#include "geo/geo_types.h"
#include "geo/wkt_parse_type.h"
#include "geo/wkt_yacc.y.hpp"
#define YYSTYPE WKT_STYPE
#define YY_EXTRA_TYPE WktParseContext*
#include "geo/wkt_lex.l.h"

namespace doris {

GeoParseStatus WktParse::parse_wkt(const char* str, size_t len, GeoShape** shape) {
    WktParseContext ctx;
    // initialize lexer
    wkt_lex_init_extra(&ctx, &ctx.scaninfo);
    wkt__scan_bytes(str, len, ctx.scaninfo);

    // parse
    auto res = wkt_parse(&ctx);
    wkt_lex_destroy(ctx.scaninfo);
    if (res == 0) {
        *shape = ctx.shape;
    } else {
        if (ctx.parse_status == GEO_PARSE_OK) {
            ctx.parse_status = GEO_PARSE_WKT_SYNTAX_ERROR;
        }
    }
    return ctx.parse_status;
}

}


<?xml version="1.0" encoding="UTF-8"?>
<Scheme
   LastUpgradeVersion = "0800"
   version = "1.3">
   <BuildAction
      parallelizeBuildables = "YES"
      buildImplicitDependencies = "YES">
      <BuildActionEntries>
         <BuildActionEntry
            buildForTesting = "YES"
            buildForRunning = "YES"
            buildForProfiling = "YES"
            buildForArchiving = "YES"
            buildForAnalyzing = "YES">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "13CAFC251D2272B000E57ED4"
               BuildableName = "corectl.app"
               BlueprintName = "corectl"
               ReferencedContainer = "container:corectl.xcodeproj">
            </BuildableReference>
         </BuildActionEntry>
      </BuildActionEntries>
   </BuildAction>
   <TestAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      shouldUseLaunchSchemeArgsEnv = "YES">
      <Testables>
      </Testables>
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "13CAFC251D2272B000E57ED4"
            BuildableName = "corectl.app"
            BlueprintName = "corectl"
            ReferencedContainer = "container:corectl.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
      <AdditionalOptions>
      </AdditionalOptions>
   </TestAction>
   <LaunchAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      launchStyle = "0"
      useCustomWorkingDirectory = "NO"
      ignoresPersistentStateOnLaunch = "NO"
      debugDocumentVersioning = "YES"
      debugServiceExtension = "internal"
      allowLocationSimulation = "YES">
      <BuildableProductRunnable
         runnableDebuggingMode = "0">
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "13CAFC251D2272B000E57ED4"
            BuildableName = "corectl.app"
            BlueprintName = "corectl"
            ReferencedContainer = "container:corectl.xcodeproj">
         </BuildableReference>
      </BuildableProductRunnable>
      <AdditionalOptions>
      </AdditionalOptions>
   </LaunchAction>
   <ProfileAction
      buildConfiguration = "Release"
      shouldUseLaunchSchemeArgsEnv = "YES"
      savedToolIdentifier = ""
      useCustomWorkingDirectory = "NO"
      debugDocumentVersioning = "YES">
      <BuildableProductRunnable
         runnableDebuggingMode = "0">
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "13CAFC251D2272B000E57ED4"
            BuildableName = "corectl.app"
            BlueprintName = "corectl"
            ReferencedContainer = "container:corectl.xcodeproj">
         </BuildableReference>
      </BuildableProductRunnable>
   </ProfileAction>
   <AnalyzeAction
      buildConfiguration = "Debug">
   </AnalyzeAction>
   <ArchiveAction
      buildConfiguration = "Release"
      revealArchiveInOrganizer = "YES">
   </ArchiveAction>
</Scheme>


""" A bitcoind proxy that allows instrumentation and canned responses
"""
from flask import Flask, request
from bitcoin.rpc import JSONRPCError  # type: ignore
from bitcoin.rpc import RawProxy as BitcoinProxy  # type: ignore
from cheroot.wsgi import Server  # type: ignore
from cheroot.wsgi import PathInfoDispatcher  # type: ignore

import decimal
import flask
import json
import logging
import threading

class DecimalEncoder(json.JSONEncoder):
    """By default json.dumps does not handle Decimals correctly, so we override it's handling
    """
    def default(self, o):
        if isinstance(o, decimal.Decimal):
            return "{:.8f}".format(float(o))
        return super(DecimalEncoder, self).default(o)

class BitcoinRpcProxy(object):
    def __init__(self, bitcoind, rpcport=0):
        self.app = Flask("BitcoindProxy")
        self.app.add_url_rule("/", "API entrypoint", self.proxy, methods=['POST'])
        self.rpcport = rpcport
        self.mocks = {}
        self.mock_counts = {}
        self.bitcoind = bitcoind
        self.request_count = 0

    def _handle_request(self, r):
        brpc = BitcoinProxy(btc_conf_file=self.bitcoind.conf_file)
        method = r['method']

        # If we have set a mock for this method reply with that instead of
        # forwarding the request.
        if method in self.mocks and type(self.mocks[method]) == dict:
            ret = {}
            ret['id'] = r['id']
            ret['error'] = None
            ret['result'] = self.mocks[method]
            self.mock_counts[method] += 1
            return ret
        elif method in self.mocks and callable(self.mocks[method]):
            self.mock_counts[method] += 1
            return self.mocks[method](r)

        try:
            reply = {
                "result": brpc._call(r['method'], *r['params']),
                "error": None,
                "id": r['id']
            }
        except JSONRPCError as e:
            reply = {
                "error": e.error,
                "code": -32603,
                "id": r['id']
            }
        self.request_count += 1
        return reply

    def proxy(self):
        r = json.loads(request.data.decode('ASCII'))

        if isinstance(r, list):
            reply = [self._handle_request(subreq) for subreq in r]
        else:
            reply = self._handle_request(r)

        response = flask.Response(json.dumps(reply, cls=DecimalEncoder))
        response.headers['Content-Type'] = 'application/json'
        return response

    def start(self):
        d = PathInfoDispatcher({'/': self.app})
        self.server = Server(('0.0.0.0', self.rpcport), d)
        self.proxy_thread = threading.Thread(target=self.server.start)
        self.proxy_thread.daemon = True
        self.proxy_thread.start()

        # Now that bitcoind is running on the real rpcport, let's tell all
        # future callers to talk to the proxyport. We use the bind_addr as a
        # signal that the port is bound and accepting connections.
        while self.server.bind_addr[1] == 0:
            pass
        self.rpcport = self.server.bind_addr[1]
        logging.debug("BitcoinRpcProxy proxying incoming port {} to {}".format(self.rpcport, self.bitcoind.rpcport))

    def stop(self):
        self.server.stop()
        self.proxy_thread.join()
        logging.debug("BitcoinRpcProxy shut down after processing {} requests".format(self.request_count))

    def mock_rpc(self, method, response=None):
        """Mock the response to a future RPC call of @method

        The response can either be a dict with the full JSON-RPC response, or a
        function that returns such a response. If the response is None the mock
        is removed and future calls will be passed through to bitcoind again.

        """
        if response is not None:
            self.mocks[method] = response
            self.mock_counts[method] = 0
        elif method in self.mocks:
            del self.mocks[method]


=pod

=head1 NAME

ASYNC_WAIT_CTX_new, ASYNC_WAIT_CTX_free, ASYNC_WAIT_CTX_set_wait_fd,
ASYNC_WAIT_CTX_get_fd, ASYNC_WAIT_CTX_get_all_fds,
ASYNC_WAIT_CTX_get_changed_fds, ASYNC_WAIT_CTX_clear_fd - functions to manage
waiting for asynchronous jobs to complete

=head1 SYNOPSIS

 #include <openssl/async.h>

 ASYNC_WAIT_CTX *ASYNC_WAIT_CTX_new(void);
 void ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx);
 int ASYNC_WAIT_CTX_set_wait_fd(ASYNC_WAIT_CTX *ctx, const void *key,
                                OSSL_ASYNC_FD fd,
                                void *custom_data,
                                void (*cleanup)(ASYNC_WAIT_CTX *, const void *,
                                               OSSL_ASYNC_FD, void *));
 int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key,
                           OSSL_ASYNC_FD *fd, void **custom_data);
 int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *fd,
                                size_t *numfds);
 int ASYNC_WAIT_CTX_get_changed_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *addfd,
                                    size_t *numaddfds, OSSL_ASYNC_FD *delfd,
                                    size_t *numdelfds);
 int ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key);

=head1 DESCRIPTION

For an overview of how asynchronous operations are implemented in OpenSSL see
L<ASYNC_start_job(3)>. An ASYNC_WAIT_CTX object represents an asynchronous
"session", i.e. a related set of crypto operations. For example in SSL terms
this would have a one-to-one correspondence with an SSL connection.

Application code must create an ASYNC_WAIT_CTX using the ASYNC_WAIT_CTX_new()
function prior to calling ASYNC_start_job() (see L<ASYNC_start_job(3)>). When
the job is started it is associated with the ASYNC_WAIT_CTX for the duration of
that job. An ASYNC_WAIT_CTX should only be used for one ASYNC_JOB at any one
time, but can be reused after an ASYNC_JOB has finished for a subsequent
ASYNC_JOB. When the session is complete (e.g. the SSL connection is closed),
application code cleans up with ASYNC_WAIT_CTX_free().

ASYNC_WAIT_CTXs can have "wait" file descriptors associated with them. Calling
ASYNC_WAIT_CTX_get_all_fds() and passing in a pointer to an ASYNC_WAIT_CTX in
the B<ctx> parameter will return the wait file descriptors associated with that
job in B<*fd>. The number of file descriptors returned will be stored in
B<*numfds>. It is the caller's responsibility to ensure that sufficient memory
has been allocated in B<*fd> to receive all the file descriptors. Calling
ASYNC_WAIT_CTX_get_all_fds() with a NULL B<fd> value will return no file
descriptors but will still populate B<*numfds>. Therefore application code is
typically expected to call this function twice: once to get the number of fds,
and then again when sufficient memory has been allocated. If only one
asynchronous engine is being used then normally this call will only ever return
one fd. If multiple asynchronous engines are being used then more could be
returned.

The function ASYNC_WAIT_CTX_fds_have_changed() can be used to detect if any fds
have changed since the last call time ASYNC_start_job() returned an ASYNC_PAUSE
result (or since the ASYNC_WAIT_CTX was created if no ASYNC_PAUSE result has
been received). The B<numaddfds> and B<numdelfds> parameters will be populated
with the number of fds added or deleted respectively. B<*addfd> and B<*delfd>
will be populated with the list of added and deleted fds respectively. Similarly
to ASYNC_WAIT_CTX_get_all_fds() either of these can be NULL, but if they are not
NULL then the caller is responsible for ensuring sufficient memory is allocated.

Implementors of async aware code (e.g. engines) are encouraged to return a
stable fd for the lifetime of the ASYNC_WAIT_CTX in order to reduce the "churn"
of regularly changing fds - although no guarantees of this are provided to
applications.

Applications can wait for the file descriptor to be ready for "read" using a
system function call such as select or poll (being ready for "read" indicates
that the job should be resumed). If no file descriptor is made available then an
application will have to periodically "poll" the job by attempting to restart it
to see if it is ready to continue.

Async aware code (e.g. engines) can get the current ASYNC_WAIT_CTX from the job
via L<ASYNC_get_wait_ctx(3)> and provide a file descriptor to use for waiting
on by calling ASYNC_WAIT_CTX_set_wait_fd(). Typically this would be done by an
engine immediately prior to calling ASYNC_pause_job() and not by end user code.
An existing association with a file descriptor can be obtained using
ASYNC_WAIT_CTX_get_fd() and cleared using ASYNC_WAIT_CTX_clear_fd(). Both of
these functions requires a B<key> value which is unique to the async aware
code.  This could be any unique value but a good candidate might be the
B<ENGINE *> for the engine. The B<custom_data> parameter can be any value, and
will be returned in a subsequent call to ASYNC_WAIT_CTX_get_fd(). The
ASYNC_WAIT_CTX_set_wait_fd() function also expects a pointer to a "cleanup"
routine. This can be NULL but if provided will automatically get called when
the ASYNC_WAIT_CTX is freed, and gives the engine the opportunity to close the
fd or any other resources. Note: The "cleanup" routine does not get called if
the fd is cleared directly via a call to ASYNC_WAIT_CTX_clear_fd().

An example of typical usage might be an async capable engine. User code would
initiate cryptographic operations. The engine would initiate those operations
asynchronously and then call ASYNC_WAIT_CTX_set_wait_fd() followed by
ASYNC_pause_job() to return control to the user code. The user code can then
perform other tasks or wait for the job to be ready by calling "select" or other
similar function on the wait file descriptor. The engine can signal to the user
code that the job should be resumed by making the wait file descriptor
"readable". Once resumed the engine should clear the wake signal on the wait
file descriptor.

=head1 RETURN VALUES

ASYNC_WAIT_CTX_new() returns a pointer to the newly allocated ASYNC_WAIT_CTX or
NULL on error.

ASYNC_WAIT_CTX_set_wait_fd, ASYNC_WAIT_CTX_get_fd, ASYNC_WAIT_CTX_get_all_fds,
ASYNC_WAIT_CTX_get_changed_fds and ASYNC_WAIT_CTX_clear_fd all return 1 on
success or 0 on error.

=head1 NOTES

On Windows platforms the openssl/async.h header is dependent on some
of the types customarily made available by including windows.h. The
application developer is likely to require control over when the latter
is included, commonly as one of the first included headers. Therefore
it is defined as an application developer's responsibility to include
windows.h prior to async.h.

=head1 SEE ALSO

L<crypto(3)>, L<ASYNC_start_job(3)>

=head1 HISTORY

ASYNC_WAIT_CTX_new, ASYNC_WAIT_CTX_free, ASYNC_WAIT_CTX_set_wait_fd,
ASYNC_WAIT_CTX_get_fd, ASYNC_WAIT_CTX_get_all_fds,
ASYNC_WAIT_CTX_get_changed_fds, ASYNC_WAIT_CTX_clear_fd were first added to
OpenSSL 1.1.0.

=head1 COPYRIGHT

Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the OpenSSL license (the "License").  You may not use
this file except in compliance with the License.  You can obtain a copy
in the file LICENSE in the source distribution or at
L<https://www.openssl.org/source/license.html>.

=cut


(function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
    typeof define === 'function' && define.amd ? define(factory) :
    (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hr = factory()));
}(this, function () { 'use strict';

    var hr = {
        code: "hr",
        week: {
            dow: 1,
            doy: 7 // The week that contains Jan 1st is the first week of the year.
        },
        buttonText: {
            prev: "Prijašnji",
            next: "Sljedeći",
            today: "Danas",
            month: "Mjesec",
            week: "Tjedan",
            day: "Dan",
            list: "Raspored"
        },
        weekLabel: "Tje",
        allDayText: "Cijeli dan",
        eventLimitText: function (n) {
            return "+ još " + n;
        },
        noEventsMessage: "Nema događaja za prikaz"
    };

    return hr;

}));


/*
 * Copyright 2011-2013 HTTL Team.
 *
 * 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.
 */
package httl.spi.loggers;

import httl.spi.Logger;

/**
 * SimpleLogger. (SPI, Singleton, ThreadSafe)
 *
 * @author Liang Fei (liangfei0201 AT gmail DOT com)
 * @see httl.spi.engines.DefaultEngine#setLogger(Logger)
 */
public class SimpleLogger implements Logger {

    private static final String PREFIX = "[" + NAME + "] ";

    private static final int TRACE = -2;

    private static final int DEBUG = -1;

    private static final int INFO = 0;

    private static final int WARN = 1;

    private static final int ERROR = 2;

    private int level = INFO;

    /**
     * httl.properties: logger.level=DEBUG
     */
    public void setLoggerLevel(String level) {
        if ("TRACE".equalsIgnoreCase(level)) {
            this.level = TRACE;
        } else if ("DEBUG".equalsIgnoreCase(level)) {
            this.level = DEBUG;
        } else if ("INFO".equalsIgnoreCase(level)) {
            this.level = INFO;
        } else if ("WARN".equalsIgnoreCase(level)) {
            this.level = WARN;
        } else if ("ERROR".equalsIgnoreCase(level)) {
            this.level = ERROR;
        }
    }

    private String getMessage(String msg) {
        if (PREFIX == null)
            return msg;
        return PREFIX + msg;
    }

    public void trace(String msg) {
        if (level > TRACE)
            return;
        System.out.println(getMessage(msg));
    }

    public void trace(Throwable e) {
        if (level > TRACE)
            return;
        if (e != null)
            e.printStackTrace();
    }

    public void trace(String msg, Throwable e) {
        if (level > TRACE)
            return;
        System.out.println(getMessage(msg));
        if (e != null)
            e.printStackTrace();
    }

    public void debug(String msg) {
        if (level > DEBUG)
            return;
        System.out.println(getMessage(msg));
    }

    public void debug(Throwable e) {
        if (level > DEBUG)
            return;
        if (e != null)
            e.printStackTrace();
    }

    public void debug(String msg, Throwable e) {
        if (level > DEBUG)
            return;
        System.out.println(getMessage(msg));
        if (e != null)
            e.printStackTrace();
    }

    public void info(String msg) {
        if (level > INFO)
            return;
        System.out.println(getMessage(msg));
    }

    public void info(Throwable e) {
        if (level > INFO)
            return;
        if (e != null)
            e.printStackTrace();
    }

    public void info(String msg, Throwable e) {
        if (level > INFO)
            return;
        System.out.println(getMessage(msg));
        if (e != null)
            e.printStackTrace();
    }

    public void warn(String msg) {
        if (level > WARN)
            return;
        System.err.println(getMessage(msg));
    }

    public void warn(Throwable e) {
        if (level > WARN)
            return;
        if (e != null)
            e.printStackTrace();
    }

    public void warn(String msg, Throwable e) {
        if (level > WARN)
            return;
        System.err.println(getMessage(msg));
        if (e != null)
            e.printStackTrace();
    }

    public void error(String msg) {
        if (level > ERROR)
            return;
        System.err.println(getMessage(msg));
    }

    public void error(Throwable e) {
        if (level > ERROR)
            return;
        if (e != null)
            e.printStackTrace();
    }

    public void error(String msg, Throwable e) {
        if (level > ERROR)
            return;
        System.err.println(getMessage(msg));
        if (e != null)
            e.printStackTrace();
    }

    public boolean isTraceEnabled() {
        return true;
    }

    public boolean isDebugEnabled() {
        return true;
    }

    public boolean isInfoEnabled() {
        return true;
    }

    public boolean isWarnEnabled() {
        return true;
    }

    public boolean isErrorEnabled() {
        return true;
    }

    public boolean isFatalEnabled() {
        return true;
    }

};


<%@page contentType="text/html;charset=UTF-8"%>
<%@page import="org.springframework.context.ApplicationContext"%>
<%@page import="org.springframework.web.context.support.WebApplicationContextUtils"%>
<%@page import="com.mossle.api.auth.CustomPasswordEncoder"%>
<%
	if (request.getParameter("password") != null) {
		ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(application);
		CustomPasswordEncoder customPasswordEncoder = (CustomPasswordEncoder) ctx.getBean("customPasswordEncoder");
		pageContext.setAttribute("encodedPassword", customPasswordEncoder.encode(request.getParameter("password")));
	}
%>

    <meta charset="utf-8">
	<title>pwd</title>

	<form action="pwd.jsp" method="post">
	  password:<input type="input" name="password" value="${param.password}">

	  encodedPassword: ${encodedPassword}

	  <input type="submit">
	</form>

	admin : 21232f297a57a5a743894a0e4a801fc3

	user : ee11cbb19052e40b07aac0ca060c23ee


<?php
/**
 * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 * http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file 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.
 */

namespace Aws\OpsWorks\Enum;

use Aws\Common\Enum;

/**
 * Contains enumerable LayerType values
 */
class LayerType extends Enum
{
    const LB = 'lb';
    const WEB = 'web';
    const PHP_APP = 'php-app';
    const RAILS_APP = 'rails-app';
    const NODEJS_APP = 'nodejs-app';
    const MEMCACHED = 'memcached';
    const DB_MASTER = 'db-master';
    const MONITORING_MASTER = 'monitoring-master';
    const CUSTOM = 'custom';
}


// +build linux

package fs2

import (
	stdErrors "errors"
	"os"
	"strings"

	"github.com/opencontainers/runc/libcontainer/cgroups/fscommon"
	"github.com/opencontainers/runc/libcontainer/configs"
	"github.com/pkg/errors"
	"golang.org/x/sys/unix"
)

func setFreezer(dirPath string, state configs.FreezerState) error {
	if err := supportsFreezer(dirPath); err != nil {
		// We can ignore this request as long as the user didn't ask us to
		// freeze the container (since without the freezer cgroup, that's a
		// no-op).
		if state == configs.Undefined || state == configs.Thawed {
			err = nil
		}
		return errors.Wrap(err, "freezer not supported")
	}

	var stateStr string
	switch state {
	case configs.Undefined:
		return nil
	case configs.Frozen:
		stateStr = "1"
	case configs.Thawed:
		stateStr = "0"
	default:
		return errors.Errorf("invalid freezer state %q requested", state)
	}

	if err := fscommon.WriteFile(dirPath, "cgroup.freeze", stateStr); err != nil {
		return err
	}
	// Confirm that the cgroup did actually change states.
	if actualState, err := getFreezer(dirPath); err != nil {
		return err
	} else if actualState != state {
		return errors.Errorf(`expected "cgroup.freeze" to be in state %q but was in %q`, state, actualState)
	}
	return nil
}

func supportsFreezer(dirPath string) error {
	_, err := fscommon.ReadFile(dirPath, "cgroup.freeze")
	return err
}

func getFreezer(dirPath string) (configs.FreezerState, error) {
	state, err := fscommon.ReadFile(dirPath, "cgroup.freeze")
	if err != nil {
		// If the kernel is too old, then we just treat the freezer as being in
		// an "undefined" state.
		if os.IsNotExist(err) || stdErrors.Is(err, unix.ENODEV) {
			err = nil
		}
		return configs.Undefined, err
	}
	switch strings.TrimSpace(state) {
	case "0":
		return configs.Thawed, nil
	case "1":
		return configs.Frozen, nil
	default:
		return configs.Undefined, errors.Errorf(`unknown "cgroup.freeze" state: %q`, state)
	}
}


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<title>CameraAccessHandler</title>
<meta name="date" content="2018-03-29">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">

JavaScript is disabled on your browser.

Skip navigation links

Overview

Package

Class

Tree

Deprecated

Index

Help

Prev Class

Next Class

Frames

No Frames

All Classes

Summary:

Nested |

Field |

Constr |

Method

Detail:

Field |

Constr |

Method

org.artoolkitx.arx.arxj.camera

Interface CameraAccessHandler

All Known Implementing Classes:

CameraAccessHandlerImpl

public interface CameraAccessHandler

Method Summary

All Methods Instance Methods Abstract Methods

Modifier and Type
Method and Description

void
closeCamera()

boolean
getCameraAccessPermissions()

CameraSurface
getCameraSurfaceView()

void
resetCameraAccessPermissionsFromUser()

Method Detail

resetCameraAccessPermissionsFromUser

void resetCameraAccessPermissionsFromUser()

getCameraAccessPermissions

boolean getCameraAccessPermissions()

closeCamera

void closeCamera()

getCameraSurfaceView

CameraSurface getCameraSurfaceView()

Skip navigation links

Overview

Package

Class

Tree

Deprecated

Index

Help

Prev Class

Next Class

Frames

No Frames

All Classes

Summary:

Nested |

Field |

Constr |

Method

Detail:

Field |

Constr |

Method


/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
	"moreSearch": "검색 세부 정보 설정/해제",
	"searchScope.includes": "포함할 파일",
	"label.includes": "패턴 포함 검색",
	"searchScope.excludes": "제외할 파일",
	"label.excludes": "패턴 제외 검색",
	"global.searchScope.folders": "설정을 통해 제외된 파일",
	"label.global.excludes": "구성된 검색 제외 패턴",
	"replaceAll.confirmation.title": "모두 바꾸기",
	"replaceAll.confirm.button": "바꾸기",
	"replaceAll.occurrence.file.message": "{1}개 파일에서 {0}개를 '{2}'(으)로 바꿨습니다.",
	"removeAll.occurrence.file.message": "{1}개 파일에서 {0}개를 바꿨습니다.",
	"replaceAll.occurrence.files.message": "{1}개 파일에서 {0}개를 '{2}'(으)로 바꿨습니다.",
	"removeAll.occurrence.files.message": "{1}개 파일에서 {0}개를 바꿨습니다.",
	"replaceAll.occurrences.file.message": "{1}개 파일에서 {0}개를 '{2}'(으)로 바꿨습니다.",
	"removeAll.occurrences.file.message": "{1}개 파일에서 {0}개를 바꿨습니다.",
	"replaceAll.occurrences.files.message": "{1}개 파일에서 {0}개를 '{2}'(으)로 바꿨습니다.",
	"removeAll.occurrences.files.message": "{1}개 파일에서 {0}개를 바꿨습니다.",
	"removeAll.occurrence.file.confirmation.message": "{1}개 파일에서 {0}개를 '{2}'(으)로 바꾸시겠습니까?",
	"replaceAll.occurrence.file.confirmation.message": "{1}개 파일에서 {0}개를 바꾸시겠습니까?",
	"removeAll.occurrence.files.confirmation.message": "{1}개 파일에서 {0}개를 '{2}'(으)로 바꾸시겠습니까?",
	"replaceAll.occurrence.files.confirmation.message": "{1}개 파일에서 {0}개를 바꾸시겠습니까?",
	"removeAll.occurrences.file.confirmation.message": "{1}개 파일에서 {0}개를 '{2}'(으)로 바꾸시겠습니까?",
	"replaceAll.occurrences.file.confirmation.message": "{1}개 파일에서 {0}개를 바꾸시겠습니까?",
	"removeAll.occurrences.files.confirmation.message": "{1}개 파일에서 {0}개를 '{2}'(으)로 바꾸시겠습니까?",
	"replaceAll.occurrences.files.confirmation.message": "{1}개 파일에서 {0}개를 바꾸시겠습니까?",
	"treeAriaLabel": "검색 결과",
	"globLabel": "{0}({1}인 경우)",
	"searchMaxResultsWarning": "결과 집합에는 모든 일치 항목의 하위 집합만 포함됩니다. 결과 범위를 좁히려면 검색을 더 세분화하세요.",
	"searchCanceled": "결과를 찾기 이전에 검색이 취소되었습니다. -",
	"noResultsIncludesExcludes": "'{0}'에 '{1}'을(를) 제외한 결과 없음 - ",
	"noResultsIncludes": "'{0}'에 결과 없음 - ",
	"noResultsExcludes": "'{0}'을(를) 제외하는 결과가 없음 - ",
	"noResultsFound": "결과가 없습니다. 구성된 확장에 대한 설정을 검토하세요. - ",
	"rerunSearch.message": "다시 검색",
	"rerunSearchInAll.message": "모든 파일에서 다시 검색",
	"openSettings.message": "설정 열기",
	"ariaSearchResultsStatus": "검색에서 {1}개의 파일에 {0}개의 결과를 반환했습니다.",
	"search.file.result": "{1}개 파일에서 {0}개 결과",
	"search.files.result": "{1}개 파일에서 {0}개 결과",
	"search.file.results": "{1}개 파일에서 {0}개 결과",
	"search.files.results": "{1}개 파일에서 {0}개 결과",
	"searchWithoutFolder": "아직 폴더를 열지 않았습니다. 현재 열린 파일만 검색됩니다. ",
	"openFolder": "폴더 열기"
}


fileFormatVersion: 2
guid: 64ac3b5e028386e479ce02ffa30c95c8
timeCreated: 1479308935
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:


import  numpy as np
from    mpl_toolkits.mplot3d import Axes3D
from    matplotlib import pyplot as plt
import  tensorflow as tf

def himmelblau(x):
    # himmelblau函数实现
    return (x[0] ** 2 + x[1] - 11) ** 2 + (x[0] + x[1] ** 2 - 7) ** 2

x = np.arange(-6, 6, 0.1)
y = np.arange(-6, 6, 0.1)
print('x,y range:', x.shape, y.shape)
# 生成x-y平面采样网格点，方便可视化
X, Y = np.meshgrid(x, y)
print('X,Y maps:', X.shape, Y.shape)
Z = himmelblau([X, Y]) # 计算网格点上的函数值

# 绘制himmelblau函数曲面
fig = plt.figure('himmelblau')
ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z)
ax.view_init(60, -30)
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.show()

# 参数的初始化值对优化的影响不容忽视，可以通过尝试不同的初始化值，
# 检验函数优化的极小值情况
# [1., 0.], [-4, 0.], [4, 0.]
# x = tf.constant([4., 0.])
# x = tf.constant([1., 0.])
# x = tf.constant([-4., 0.])
x = tf.constant([-2., 2.])

for step in range(200):# 循环优化
    with tf.GradientTape() as tape: #梯度跟踪
        tape.watch([x]) # 记录梯度
        y = himmelblau(x) # 前向传播
    # 反向传播
    grads = tape.gradient(y, [x])[0]
    # 更新参数,0.01为学习率
    x -= 0.01*grads
    # 打印优化的极小值
    if step % 20 == 19:
        print ('step {}: x = {}, f(x) = {}'
               .format(step, x.numpy(), y.numpy()))


---
alias: ieshoo5ohm
description: Learn how to use the Prisma command line
---

# Overview

The Prisma command line interface (CLI) is the primary tool to manage your database services with Prisma.

Generally, the configuration of a Prisma service is handled using the CLI and the service definition file [`prisma.yml`](!alias-foatho8aip).

A central part of configuring a Prisma service is deploying a [data model](!alias-eiroozae8u).

## Getting Started

You can download the Prisma CLI from npm:

```sh
npm install -g prisma
```

To initialize a new service, use the `init` command. Then follow the interactive prompt to bootstrap the service based on a template of your choice:

```sh
prisma init
```

In the following sections you'll learn more about configuring Prisma services using the CLI.


/*
 * Copyright 2019 Xilinx Inc.
 *
 * 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.
 */
#include <glog/logging.h>
#include <iostream>
#include <memory>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <vitis/ai/demo.hpp>
#include <vitis/ai/yolov3.hpp>
#include <vitis/ai/nnpp/yolov3.hpp>
#include "./process_result.hpp"
using namespace std;
int main(int argc, char *argv[]) {
  string model = argv[1];
  return vitis::ai::main_for_video_demo(
      argc, argv,
      [model] {
        return vitis::ai::YOLOv3::create(model);
      },
      process_result, 2);
}


/*
 * Copyright (c) 2002-2012 Alibaba Group Holding Limited.
 * All rights reserved.
 *
 * 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.
 */

package com.alibaba.citrus.springext;

import static com.alibaba.citrus.util.Assert.*;
import static com.alibaba.citrus.util.ClassUtil.*;
import static com.alibaba.citrus.util.CollectionUtil.*;

import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.InputStreamSource;

/**
 * 这个接口的目的是取得configuration point/contribution所需要的一切资源文件，例如定义文件、schema文件等。
 * 在不同的环境中，需要不同的实现。例如：
 *

 *
在应用程序的环境中，将从class loader来寻找和装载所有的资源文件。

 *
在IDE开发环境中（IDE plugins），每个IDE有自己不同的装载资源的方法。
 * 每个IDE插件（例如Intellij IDE、Eclipse）需要实现自己的ResourceResolver来装载项目中的资源文件。

 *

 * 默认的实现是用class loader来装载资源。
 *
 * @author Michael Zhou
 */
public abstract class ResourceResolver {
    protected final Logger log = LoggerFactory.getLogger(getClass());

    /**
     * 取得指定位置的一个资源。
     * 如果资源不存在，则返回null。
     */
    public abstract Resource getResource(String location);

    /**
     * 找到所有符合名称的资源。支持同名资源的查找，例如，查找所有jar包中的/META-INF/spring.schemas文件。该方法还支持通配符。
     *
     * @throws IOException 如果在寻找过程中出错
     */
    public abstract Resource[] getResources(String locationPattern) throws IOException;

    /** 从ResourceResolver中读取所有指定名称的资源文件，对每一个key/value调用handler。 */
    public final void loadAllProperties(String resourceName, PropertyHandler handler)
            throws ConfigurationPointException {
        assertNotNull(resourceName, "Resource name must not be null");
        assertNotNull(handler, "No handler provided");

        Map<String, Resource> keyToResources = createHashMap();

        try {
            for (Resource resource : getResources(resourceName)) {
                Properties props = new Properties();
                InputStream is = null;

                try {
                    is = resource.getInputStream();
                    props.load(is);

                    for (Entry<Object, Object> entry : props.entrySet()) {
                        String key = (String) entry.getKey();
                        String value = (String) entry.getValue();

                        if (keyToResources.containsKey(key)) {
                            log.warn("Duplicated key \"{}\" in {} and {}", new Object[] { key, resource, keyToResources.get(key) });
                        } else {
                            keyToResources.put(key, resource);
                            handler.handle(key, value, resource, -1); // no line number supported in this implementation
                        }
                    }
                } finally {
                    if (is != null) {
                        try {
                            is.close();
                        } catch (IOException ignored) {
                        }
                    }
                }
            }
        } catch (IOException e) {
            throw new ConfigurationPointException("Unable to load data from " + resourceName, e);
        }
    }

    public static abstract class Resource implements InputStreamSource {
        public abstract String getName();

        public abstract InputStream getInputStream() throws IOException;

        @Override
        public final String toString() {
            String desc = getName();
            return getSimpleClassName(getClass()) + (desc == null ? "" : "[" + desc + "]");
        }
    }

    public static interface PropertyHandler {
        void handle(String key, String value, Resource source, int lineNumber);
    }
}


<?php
namespace QuickBooksOnline\API\Facades;

class BillPayment{

    public static function create(array $data, $throwException = TRUE){
        if(!isset($data) || empty($data)) throw new \Exception("Passed array for creating BillPayment is Empty");
        $BillPaymentObject = FacadeHelper::reflectArrayToObject("BillPayment", $data, $throwException );
        return $BillPaymentObject;
    }

    public static function update($objToUpdate, array $data){
        $classOfObj = get_class($objToUpdate);
        if(strcmp($classOfObj, FacadeHelper::simpleAppendClassNameSpace("BillPayment")) != 0){
            throw new \Exception("Target object class:{" .  $classOfObj . "} is not an instance of BillPayment.");
        }
        $newBillPaymentObj = BillPayment::create($data);
        $clonedOfObj = FacadeHelper::cloneObj($objToUpdate);
        FacadeHelper::mergeObj($clonedOfObj, $newBillPaymentObj);
        return $clonedOfObj;
    }

}


/** @file nim_subscribe_event.h
  * @brief 事件订阅 接口头文件
  * @copyright (c) 2017, NetEase Inc. All rights reserved
  * @author Redrain
  * @date 2015/03/23
  */

#ifndef NIM_SDK_DLL_API_NIM_SUBSCRIBE_EVENT_H_
#define NIM_SDK_DLL_API_NIM_SUBSCRIBE_EVENT_H_

#include "public_define/defines/nim_sdk_dll.h"
#include "public_define/defines/nim_define/nim_subscribe_event_def.h"
#include "public_define/nim_util_include.h"

#ifdef __cplusplus
extern"C"
{
#endif

/** @fn void nim_subscribe_event_reg_push_event_cb(const char *json_extension, nim_push_event_cb_func cb, const void *user_data)
  * (全局回调)统一注册接收订阅的事件的回调函数
  * @param[in] json_extension	json扩展参数（备用，目前不需要）
  * @param[in] cb				接收订阅事件的回调函数, nim_push_event_cb_func回调函数定义见nim_subscribe_event_def.h
  * @param[in] user_data		APP的自定义用户数据，SDK只负责传回给回调函数cb，不做任何处理！
  * @return void 无返回值
  * @note 错误码	200:成功
  */
NIM_SDK_DLL_API void nim_subscribe_event_reg_push_event_cb(const char *json_extension, nim_push_event_cb_func cb, const void *user_data);

/** @fn void nim_subscribe_event_reg_batch_push_event_cb(const char *json_extension, nim_batch_push_event_cb_func cb, const void *user_data)
  * (全局回调)统一注册批量接收订阅的事件的回调函数
  * @param[in] json_extension	json扩展参数（备用，目前不需要）
  * @param[in] cb				批量接收订阅事件的回调函数, nim_batch_push_event_cb_func回调函数定义见nim_subscribe_event_def.h
  * @param[in] user_data		APP的自定义用户数据，SDK只负责传回给回调函数cb，不做任何处理！
  * @return void 无返回值
  * @note 错误码	200:成功
  */
NIM_SDK_DLL_API void nim_subscribe_event_reg_batch_push_event_cb(const char *json_extension, nim_batch_push_event_cb_func cb, const void *user_data);

/** @fn void nim_publish_event(const char *event_json, const char *json_extension, nim_publish_event_cb_func cb, const void *user_data)
  * 发布事件
  * @param[in] event_json		事件json字符串
  * @param[in] json_extension	json扩展参数（备用，目前不需要）
  * @param[in] cb				操作结果回调, nim_publish_event_cb_func回调函数定义见nim_subscribe_event_def.h
  * @param[in] user_data		APP的自定义用户数据，SDK只负责传回给回调函数cb，不做任何处理！
  * @return void 无返回值
  * @note 错误码	200:成功
  *				403:应用没开通事件服务
  *				404:禁用了特定事件
  *				414:参数错误
  *				500:未知错误
  */
NIM_SDK_DLL_API void nim_publish_event(const char *event_json, const char *json_extension, nim_publish_event_cb_func cb, const void *user_data);

/** @fn void nim_subscribe_event(int event_type, int64_t ttl, int sync_event, const char *accid_list_json, const char *json_extension, nim_subscribe_event_cb_func cb, const void *user_data)
  * 订阅事件
  * @param[in] event_type		事件类型
  * @param[in] ttl				订阅有效期，单位：秒，范围：60s到30天
  * @param[in] sync_event		订阅后是否立即同步最新事件，见nim_subscribe_event_def.h中NIMEventSubscribeSyncType定义
  * @param[in] accid_list_json	用户列表，例 ["litianyi01", "litianyi02", ...]
  * @param[in] json_extension j	son扩展参数（备用，目前不需要）
  * @param[in] cb				操作结果回调, nim_subscribe_event_cb_func回调函数定义见nim_subscribe_event_def.h
  * @param[in] user_data		APP的自定义用户数据，SDK只负责传回给回调函数cb，不做任何处理！
  * @return void 无返回值
  * @note 错误码	200:成功
  *				414:参数错误
  *				500:未知错误
  */
NIM_SDK_DLL_API void nim_subscribe_event(int event_type, int64_t ttl, int sync_event, const char *accid_list_json, const char *json_extension, nim_subscribe_event_cb_func cb, const void *user_data);

/** @fn void nim_unsubscribe_event(int event_type, const char *accid_list_json, const char *json_extension, nim_unsubscribe_event_cb_func cb, const void *user_data)
  * 按账号取消指定事件的订阅关系
  * @param[in] event_type		事件类型
  * @param[in] accid_list_json	用户列表，例 ["litianyi01", "litianyi02", ...]
  * @param[in] json_extension	json扩展参数（备用，目前不需要）
  * @param[in] cb				操作结果回调, nim_unsubscribe_event_cb_func回调函数定义见nim_subscribe_event_def.h
  * @param[in] user_data		APP的自定义用户数据，SDK只负责传回给回调函数cb，不做任何处理！
  * @return void 无返回值
  * @note 错误码	200:成功
  *				414:参数错误
  *				500:未知错误
  */
NIM_SDK_DLL_API void nim_unsubscribe_event(int event_type, const char *accid_list_json, const char *json_extension, nim_unsubscribe_event_cb_func cb, const void *user_data);

/** @fn void nim_batch_unsubscribe_event(int event_type, const char *json_extension, nim_batch_unsubscribe_event_cb_func cb, const void *user_data)
  * 取消指定事件的全部订阅关系
  * @param[in] event_type		事件类型
  * @param[in] json_extension	json扩展参数（备用，目前不需要）
  * @param[in] cb				操作结果回调, nim_batch_unsubscribe_event_cb_func回调函数定义见nim_subscribe_event_def.h
  * @param[in] user_data		APP的自定义用户数据，SDK只负责传回给回调函数cb，不做任何处理！
  * @return void 无返回值
  * @note 错误码	200:成功
  *				414:参数错误
  *				500:未知错误
  */
NIM_SDK_DLL_API void nim_batch_unsubscribe_event(int event_type, const char *json_extension, nim_batch_unsubscribe_event_cb_func cb, const void *user_data);

/** @fn void nim_query_subscribe_event(int event_type, const char *accid_list_json, const char *json_extension, nim_query_subscribe_event_cb_func cb, const void *user_data)
  * 按账号查询指定事件订阅关系
  * @param[in] event_type		事件类型
  * @param[in] accid_list_json	用户列表，例 ["litianyi01", "litianyi02", ...]
  * @param[in] json_extension	json扩展参数（备用，目前不需要）
  * @param[in] cb				操作结果回调, nim_query_subscribe_event_cb_func回调函数定义见nim_subscribe_event_def.h
  * @param[in] user_data		APP的自定义用户数据，SDK只负责传回给回调函数cb，不做任何处理！
  * @return void 无返回值
  * @note 错误码	200:成功
  *				414:参数错误
  *				500:未知错误
  */
NIM_SDK_DLL_API void nim_query_subscribe_event(int event_type, const char *accid_list_json, const char *json_extension, nim_query_subscribe_event_cb_func cb, const void *user_data);

/** @fn void nim_batch_query_subscribe_event(int event_type, const char *json_extension, nim_batch_query_subscribe_event_cb_func cb, const void *user_data)
  * 查询指定事件的全部订阅关系
  * @param[in] event_type		事件类型
  * @param[in] json_extension	json扩展参数（备用，目前不需要）
  * @param[in] cb				操作结果回调, nim_batch_query_subscribe_event_cb_func回调函数定义见nim_subscribe_event_def.h
  * @param[in] user_data		APP的自定义用户数据，SDK只负责传回给回调函数cb，不做任何处理！
  * @return void 无返回值
  * @note 错误码	200:成功
  *				414:参数错误
  *				500:未知错误
  */
NIM_SDK_DLL_API void nim_batch_query_subscribe_event(int event_type, const char *json_extension, nim_batch_query_subscribe_event_cb_func cb, const void *user_data);

#ifdef __cplusplus
}
#endif

#endif //NIM_SDK_DLL_API_NIM_SUBSCRIBE_EVENT_H_