text:
/**
 * (c) 2016 Tieto Finland Oy
 * Licensed under the MIT license.
 */
'use strict';

/**
 * @ngdoc directive
 * @name dashboard.motionsDirective
 * @description
 * # motionsDirective
 */
angular.module('dashboard')
    .directive('dbMotions', [function () {

        var controller = ['$log', 'StorageSrv', 'CONST', '$rootScope', '$scope', 'AhjoMeetingSrv', 'Utils', '$timeout', function ($log, StorageSrv, CONST, $rootScope, $scope, AhjoMeetingSrv, Utils, $timeout) {
            $log.log("dbMotions: CONTROLLER");
            var self = this;
            self.isIe = $rootScope.isIe;
            self.motionsCont = null;
            self.motions = null;
            self.meetingActive = null;
            self.meetingAborted = null;
            var selectedMotion = null;
            var mtgItemSelected = StorageSrv.getKey(CONST.KEY.MEETING_ITEM);
            var scrollTimer = null;
            var setDataTimer = null;
            self.submitMotionCnfm = { title: 'STR_CONFIRM', text: 'STR_CNFM_SUBMIT_MOTION', yes: 'STR_YES' };
            self.submitFifthGroupMotion = { title: 'STR_CONFIRM', text: 'STR_CNFM_SUBMIT_FIFTH_GROUPMOTION', yes: 'STR_YES' };

            // FUNCTIONS

            function setMotions(data) {
                self.motions = [];
                setDataTimer = $timeout(function () {
                    if (angular.isObject(data)) {
                        self.motions = (angular.isArray(data.objects)) ? data.objects : [];
                        self.motionsCont = data;

                    }
                    $log.debug("dbMotions.setMotions, after timeout data=", data);
                }, 0);
            }

            function signMotion(aMotion, aMeetingGuid, aSupport) {
                if (!angular.isObject(aMotion) || !angular.isString(aMeetingGuid)) {
                    $log.error("dbMotions.signMotion: bad args", arguments);
                    return;
                }
                $log.log("dbMotions.signMotion: ", arguments);

                var copyMotion = angular.copy(aMotion);
                copyMotion.actionPersonGuid = mtgItemSelected.dbUserPersonGuid;
                copyMotion.meetingGuid = aMeetingGuid;
                copyMotion.isUserSupported = aSupport;

                AhjoMeetingSrv.updateMotion(copyMotion).then(function (resp) {
                    if (angular.isObject(resp) && angular.isObject(resp.motion)) {
                        $log.log("dbMotions.signMotion done", resp);
                        angular.merge(aMotion, resp.motion);
                        aMotion.supporters = resp.motion.supporters; // Merge won't handle removals
                    }
                    else {
                        $log.error("dbMotions.signMotion done ", arguments);
                    }
                }, function (error) {
                    $log.error("dbMotions.signMotion: error: ", arguments);
                    Utils.showErrorForError(error);
                }, function (/*notification*/) {
                    aMotion.ongoing = true;
                }).finally(function () {
                    aMotion.ongoing = false;
                });
            }

            function submitMotion(aMotion) {
                if (!angular.isObject(aMotion)) {
                    $log.error("dbMotions.submitMotion: bad args", arguments);
                    return;
                }
                $log.log("dbMotions: submitMotion", arguments);

                var copyMotion = angular.copy(aMotion);
                copyMotion.isSubmitted = true;
                copyMotion.actionPersonGuid = mtgItemSelected.dbUserPersonGuid;
                copyMotion.meetingGuid = mtgItemSelected.meetingGuid;

                AhjoMeetingSrv.updateMotion(copyMotion).then(function (resp) {
                    if (angular.isObject(resp) && angular.isObject(resp.motion)) {
                        $log.log("dbMotions.submitMotion done", resp);
                        angular.merge(aMotion, resp.motion);
                    }
                    else {
                        $log.error("dbMotions.submitMotion done ", resp);
                    }
                }, function (error) {
                    $log.error("dbMotions.submitMotion", error);
                    Utils.showErrorForError(error);
                }, function (/*notification*/) {
                    aMotion.ongoing = true;
                }).finally(function () {
                    aMotion.ongoing = false;
                });
            }

            function setMotionAsRead(aMotion) {
                if (!angular.isObject(aMotion)) {
                    $log.error("dbMotions.setMotionAsRead: bad args", arguments);
                    return;
                }
                $log.log("dbMotions: setMotionAsRead", arguments);

                var copyMotion = angular.copy(aMotion);
                copyMotion.isUserRead = true;
                copyMotion.actionPersonGuid = mtgItemSelected.dbUserPersonGuid;
                copyMotion.meetingGuid = mtgItemSelected.meetingGuid;

                AhjoMeetingSrv.updateMotion(copyMotion).then(function (resp) {
                    if (angular.isObject(resp) && angular.isObject(resp.motion)) {
                        $log.log("dbMotions.setMotionAsRead done", resp);
                        angular.merge(aMotion, resp.motion);
                    }
                    else {
                        $log.error("dbMotions.setMotionAsRead done ", resp);
                    }
                }, function (error) {
                    $log.error("dbMotions.setMotionAsRead: ", error);
                    Utils.showErrorForError(error);
                }, function (/*notification*/) {
                    aMotion.ongoing = true;
                }).finally(function () {
                    aMotion.ongoing = false;
                });
            }

            self.selectMotion = function (aMotion) {
                $log.log("dbMotions: selectMotion", arguments);
                if (self.isSelected(aMotion)) {
                    selectedMotion = null;
                }
                else {
                    selectedMotion = angular.isObject(aMotion) ? aMotion : null;
                }
                if (angular.isObject(aMotion) && aMotion.isUserRead === false) {
                    setMotionAsRead(aMotion);
                }
            };

            self.isSelected = function (motion) {
                return angular.equals(motion, selectedMotion);
            };

            self.typeString = function (id) {
                var result = '-';
                angular.forEach(CONST.MOTIONTYPES, function (value) {
                    if (angular.isObject(value) && value.id === id) {
                        result = value.stringId;
                    }
                }, this);
                return result;
            };

            self.submit = function (aMotion) {
                submitMotion(aMotion);
            };

            self.support = function (aMotion) {
                if (!angular.isObject(mtgItemSelected)) {
                    $log.error("dbMotions.support: invalid mtg item", mtgItemSelected);
                    return;
                }
                signMotion(aMotion, mtgItemSelected.meetingGuid, true);
            };

            self.removeSupport = function (aMotion) {
                if (!angular.isObject(mtgItemSelected)) {
                    $log.error("dbMotions.removeSupport: invalid mtg item", mtgItemSelected);
                    return;
                }
                signMotion(aMotion, mtgItemSelected.meetingGuid, false);
            };

            $scope.$watch(function () {
                return StorageSrv.getKey(CONST.KEY.MOTION_DATA);
            }, function (data) {
                $log.debug("dbMotions watch triggered: " + CONST.KEY.MOTION_DATA, arguments);
                setMotions(data);
            });

            $scope.$watch(function () {
                return $rootScope.meetingStatus;
            }, function (status) {
                self.meetingActive = (status === CONST.MTGSTATUS.ACTIVE.stateId);
                self.meetingAborted = (status === CONST.MTGSTATUS.ABORTED.stateId);
            });

            var modeWatcher = $rootScope.$on(CONST.MTGUICHANGED, function (event, data) {
                if (angular.isObject(data) && (data.blockMode === CONST.BLOCKMODE.SECONDARY || data.blockMode === CONST.BLOCKMODE.DEFAULT)) {
                    var motionData = StorageSrv.getKey(CONST.KEY.MOTION_DATA);
                    setMotions(motionData);
                }
            });

            $scope.$on('$destroy', function () {
                $log.debug("dbMotions: DESTROY");
                if (angular.isFunction(modeWatcher)) {
                    modeWatcher();
                }

                if (angular.isFunction(setDataTimer)) {
                    setDataTimer();
                }

                if (angular.isFunction(scrollTimer)) {
                    scrollTimer();
                }
            });

        }];

        return {
            scope: {},
            templateUrl: 'views/motions.directive.html',
            restrict: 'AE',
            controller: controller,
            controllerAs: 'c',
            replace: 'true'
        };
    }]);


text:
<!DOCTYPE html>

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Tags - LongerONE的博客</title>
    <meta name="author"  content="LongerONE">
    <meta name="description" content="iOS 开发者,Minecraft 腐竹">
    <meta name="keywords"  content="LongerONE,iOS,Minecraft,UI">

    <meta property="og:title" content="Tags - LongerONE的博客">
    <meta property="og:type" content="website">
    <meta property="og:url" content="http://localhost:4000/tags">
    <meta property="og:description" content="iOS 开发者,Minecraft 腐竹">
    <meta property="og:site_name" content="LongerONE的博客">
    <link rel="stylesheet" href="//cdn.staticfile.org/normalize/6.0.0/normalize.min.css">
    <link rel="stylesheet" href="//at.alicdn.com/t/font_roc50gemkxpw4s4i.css">
    <link rel="stylesheet" href="/assets/css/github-markdown.css">
    <link rel="stylesheet" href="/assets/css/prism.css">
    <link rel="stylesheet" href="/assets/css/share.min.css">
    <link rel="stylesheet" href="/assets/css/app.min.css">

    <input id="nm-switch" type="hidden" value="true">

主页

标签

标签

            Excel

            「Excel」

            使用 Excel 宏进行简单统计

   %

LongerONE的博客 ©

    2017
    -

  2018

Powered by Jekyll | Theme H2O

redpajama_set_name: RedPajamaGithub


text:
package timsdk.app.tim.com.br.apptimoam;

import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;

/**
 * Created by mobility on 9/3/15.
 */
public class AppendingObjectOutputStream extends ObjectOutputStream {

    public AppendingObjectOutputStream(OutputStream out) throws IOException {
        super(out);
    }

    @Override
    protected void writeStreamHeader() throws IOException {
        // do not write a header, but reset:
        // this line added after another question
        // showed a problem with the original
        reset();
    }

}


text:
[![Build Status](https://travis-ci.org/joelhmarquez/pivotaltracker-slackbot.svg?branch=master)](https://travis-ci.org/joelhmarquez/pivotaltracker-slackbot)

# pivotaltracker-slackbot
This slackbot will communicate with pivotaltracker via the pivotaltracker API and allow the user to create/view/update user stories and epics as well as manage story owners and close finished stories.


text:
cask 'unity-webgl-support-for-editor' do
  version '2019.3.5f1,d691e07d38ef'
  sha256 '0c54d4aeb60b7508faf3b3430739068815b1ef9c5c9a2484acc19dfac187109d'

  url "https://netstorage.unity3d.com/unity/#{version.after_comma}/MacEditorTargetInstaller/UnitySetup-WebGL-Support-for-Editor-#{version.before_comma}.pkg"
  appcast 'https://public-cdn.cloud.unity3d.com/hub/prod/releases-darwin.json'
  name 'Unity WebGL Build Support'
  homepage 'https://unity3d.com/unity/'

  depends_on cask: 'unity'

  pkg "UnitySetup-WebGL-Support-for-Editor-#{version.before_comma}.pkg"

  uninstall pkgutil: 'com.unity3d.WebGLSupport'
end


text:
package moeam.db.query.driver;
//package moeam.db.driver;
//
//import java.io.BufferedReader;
//import java.io.File;
//import java.io.FileNotFoundException;
//import java.io.FileReader;
//import java.sql.Connection;
//import java.sql.DriverManager;
//import java.sql.SQLException;
//import java.util.ArrayList;
//
//import org.apache.ibatis.jdbc.ScriptRunner;
//import org.junit.Test;
//
//@Deprecated
//public class ExecuteAllScripts
//{
//
//    private final String DB_URL = "jdbc:mysql://localhost:3306/test";
//    private final String DB_USERNAME = "root";
//    private final String DB_PASSWORD = "01001";
//
//    /**
//     * Run this test to create all tables for the database
//     *
//     * @throws ClassNotFoundException
//     * @throws SQLException
//     */
//    @Test
//    public void executeAllScripts() throws ClassNotFoundException, SQLException {
//        // Get driver to connect to the DB
//        Class.forName("com.mysql.jdbc.Driver");
//        Connection conn = DriverManager.getConnection(DB_URL, DB_USERNAME,
//                DB_PASSWORD);
//
//        // Get all script names and execute each script
//        ArrayList<String> scripts = getScriptNames();
//        for (String script : scripts)
//        {
//
//            // Try read a script and execute it
//            try
//            {
//                ScriptRunner scriptRunner = new ScriptRunner(conn);
//                BufferedReader reader = new BufferedReader(new FileReader(
//                        script));
//                scriptRunner.runScript(reader);
//            }
//            catch (FileNotFoundException e)
//            {
//                // TODO Auto-generated catch block
//                e.printStackTrace();
//            }
//        }
//    }
//
//    // TODO directory.listFiles() returns null so this class doesn't actually
//    // work yet
//    /** Get all script names in this package */
//    private ArrayList<String> getScriptNames() {
//        Class<ExecuteAllScripts> thisClass = ExecuteAllScripts.class;
//        Package thisPackage = thisClass.getPackage();
//        String packageName = thisPackage.getName();
//
//        // Locate all files in this package directory
//        File directory = new File(packageName);
//        File[] files = directory.listFiles();
//
//        // Retrieve class names
//        ArrayList<String> classNames = new ArrayList<String>();
//        for (File file : files)
//        {
//            if (file.getName().endsWith(".sql"))
//                classNames.add(file.getName());
//        }
//        return classNames;
//    }
//}


text:
/** Confirmed Model
 *
 */
const mongoose = require('mongoose')
mongoose.Promise = require('bluebird')
require('../config/db')
const Schema = mongoose.Schema

/**
 *
 */
const ConfirmedSchema = mongoose.Schema({
  _id: Schema.Types.ObjectId,

  confirm: [{
    _id: Schema.Types.ObjectId,
    profile: {
      type: Schema.Types.ObjectId,
      ref: 'Profile'
    }
    // createdAt: {type: Date}
  }]
})
const Confirmed = module.exports = mongoose.model('Confirmed', ConfirmedSchema)

/** Get the List of Users/Profiles you have been Confirmed with
 *
 * @param {ObjectId(String) || String} id
 */
function getConfirmIDList(id) {
  return Confirmed.findById(id).select('confirm._id').exec()
}

/** Get the List of Users/Profiles you have been Confirmed with
 *
 * @param {ObjectId(String) || String} id
 */
function getConfirmList (id) {
  return Confirmed.findById(id).select('confirm').limit(10).populate({ path: 'confirm.profile', model: 'Profile', populate: { path: 'images', model: 'Images' }}).exec()
}

/** Create Confirmation
 * Push profile id on to confirm array
 * @param {ObjectId(String) || String} id
 * @param {ObjectId(String) || String} partnerId
 */
function createConfirm (id, partnerId) {
  return Confirmed.findByIdAndUpdate(id, {$addToSet: {confirm: {_id: partnerId, profile: partnerId} } }, {upsert: true, safe: true, new: true, setDefaultsOnInsert: true}).exec()
}

/** Delete From Confirmation List
 * Delete/Pull Profile from confirmed list
 * @param {ObjectId(String) || String} id
 * @param {ObjectId(String) || String} partnerId
 */
function deleteConfirm (id, partnerId) {
  // console.log(user)
  return Confirmed.findByIdAndUpdate(id, {$pull: {confirm: {
    id: partnerId
  } } }, {multi: true}).exec()
}

/** Exporting Functions defined above
 *  Format: module.export.exportName = functionName
*/
module.exports.getConfirmIDList = getConfirmIDList
module.exports.getConfirmed = getConfirmList
module.exports.createConfirm = createConfirm
module.exports.deleteConfirm = deleteConfirm


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

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/main_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:statusBarScrim="?attr/colorPrimary"
        tools:context="com.ui.article.ArticleActivity">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="true"
            android:theme="@style/AppTheme.AppBarOverlay">

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/collapsing_toolbar"
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:fitsSystemWindows="true"
                app:contentScrim="?attr/colorPrimary"
                app:expandedTitleMarginEnd="16dp"
                app:expandedTitleMarginStart="16dp"
                app:layout_scrollFlags="scroll|exitUntilCollapsed">

                <LinearLayout
                    android:id="@+id/ll_header"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:fitsSystemWindows="true"
                    android:orientation="vertical"
                    app:layout_collapseMode="parallax"
                    app:layout_collapseParallaxMultiplier="0.7" />

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:layout_collapseMode="pin"
                    app:popupTheme="@style/AppTheme.PopupOverlay"
                    app:title="用户列表" />

            </android.support.design.widget.CollapsingToolbarLayout>

        </android.support.design.widget.AppBarLayout>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="@dimen/fab_margin"
            android:background="@drawable/button_ripple_blue"
            app:layout_anchor="@id/appbar"
            app:layout_anchorGravity="bottom|right|end"
            app:srcCompat="@drawable/ic_whilte_send" />

        <com.base.adapter.TRecyclerView
            android:id="@+id/lv_user"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:isRefreshable="false"
            app:itemType="@layout/list_item_user"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    </android.support.design.widget.CoordinatorLayout>
</layout>


text:
from django.db import migrations, models

class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Ip',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('is_active', models.BooleanField(default=False, verbose_name='Is Active')),
                ('ipaddress', models.GenericIPAddressField(unique=True, verbose_name='Ip address')),
                ('updated_date', models.DateTimeField(auto_now_add=True)),
            ],
        ),
        migrations.CreateModel(
            name='Rbl',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('is_active', models.BooleanField(default=False, verbose_name='Is Active')),
                ('name', models.CharField(max_length=100, unique=True, verbose_name='Rbl name')),
                ('address', models.CharField(max_length=100, unique=True, verbose_name='Rbl address')),
                ('link', models.CharField(max_length=200, null=True, verbose_name='Rbl link')),
                ('updated_date', models.DateTimeField(auto_now_add=True)),
            ],
        ),
    ]


text:
import React from 'react';

export default class CatalogVoyageTitle extends React.Component {
    constructor(){
        super()
    }
    render() {
        return (

{this.props.title}

        );
    }
}


text:
require "spec_helper"

module Feelter
  module Parser
    describe RSS do
      let(:atom) do
        open(fixture_path("atom.xml")).read
      end

      let(:rss) do
        open(fixture_path("rss.xml")).read
      end

      let(:filtered_rss) do
        open(fixture_path("rss_filtered.xml")).read
      end

      describe "#parsable?" do
        let(:parsable) do
          described_class.parsable?(xml)
        end

        context "Atom is given" do
          let(:xml) do
            atom
          end

          it { expect(parsable).to be false }
        end

        context "RSS is given" do
          let(:xml) do
            rss
          end

          it { expect(parsable).to be true }
        end
      end

      let(:instance) do
        described_class.new(rss)
      end

      describe "#initialize" do
        it "should have a instance of Nokogiri::XML::Document" do
          expect(instance.instance_variable_get(:@doc)).to be_a Nokogiri::XML::Document
        end
      end

      describe "#exclude_by" do
        let(:exclude_by) do
          instance.exclude_by(arg)
        end

        context "nil is given" do
          let(:arg) do
            nil
          end

          it "should raise ArgumentError" do
            expect do
              exclude_by
            end.to raise_error ArgumentError
          end
        end

        context "search query is given" do
          let(:arg) do
            { title: 3 }
          end

          it "should return filtered XML" do
            expect(exclude_by.gsub(/\s/, "")).to eq filtered_rss.gsub(/\s/, "")
          end
        end
      end
    end
  end
end


text:
require "openid"
require "openid_ar_store/version"
require "openid_ar_store/active_record_store"
require "openid_ar_store/engine"

module OpenIDArStore
end


text:
package CPANPLUS::Internals::Constants::Report;

use strict;
use CPANPLUS::Error;

use File::Spec;
use Locale::Maketext::Simple    Class => 'CPANPLUS', Style => 'gettext';

require Exporter;
use vars    qw[$VERSION @ISA @EXPORT];

use Package::Constants;

### for the version
require CPANPLUS::Internals;

$VERSION = "0.9134";
@ISA        = qw[Exporter];
@EXPORT     = Package::Constants->list( __PACKAGE__ );

### OS to regex map ###
my %OS = (
    Amiga       => 'amigaos',
    Atari       => 'mint',
    BSD         => 'bsdos|darwin|freebsd|openbsd|netbsd',
    Be          => 'beos',
    BeOS        => 'beos',
    Cygwin      => 'cygwin',
    Darwin      => 'darwin',
    EBCDIC      => 'os390|os400|posix-bc|vmesa',
    HPUX        => 'hpux',
    Linux       => 'linux',
    MSDOS       => 'dos|os2|MSWin32|cygwin',
    'bin\\d*Mac'=> 'MacOS|darwin', # binMac, bin56Mac, bin58Mac...
    Mac         => 'MacOS|darwin',
    MacPerl     => 'MacOS',
    MacOS       => 'MacOS|darwin',
    MacOSX      => 'darwin',
    MPE         => 'mpeix',
    MPEiX       => 'mpeix',
    OS2         => 'os2',
    Plan9       => 'plan9',
    RISCOS      => 'riscos',
    SGI         => 'irix',
    Solaris     => 'solaris',
    Unix        => 'aix|bsdos|darwin|dgux|dynixptx|freebsd|'.
                   'linux|hpux|machten|netbsd|next|openbsd|dec_osf|'.
                   'svr4|sco_sv|unicos|unicosmk|solaris|sunos',
    VMS         => 'VMS',
    VOS         => 'VOS',
    Win32       => 'MSWin32|cygwin',
    Win32API    => 'MSWin32|cygwin',
);

use constant GRADE_FAIL     => 'fail';
use constant GRADE_PASS     => 'pass';
use constant GRADE_NA       => 'na';
use constant GRADE_UNKNOWN  => 'unknown';

use constant MAX_REPORT_SEND
                            => 2;

use constant CPAN_TESTERS_EMAIL
                            => 'cpan-testers@perl.org';

### the cpan mail account for this user ###
use constant CPAN_MAIL_ACCOUNT
                            => sub {
                                my $username = shift or return;
                                return $username . '@cpan.org';
                            };

### check if this module is platform specific and if we're on that
### specific platform. Alternately, the module is not platform specific
### and we're always OK to send out test results.
use constant RELEVANT_TEST_RESULT
                            => sub {
                                my $mod  = shift or return;
                                my $name = $mod->module;
                                my $specific;
                                for my $platform (keys %OS) {
                                    if( $name =~ /^$platform\b/i ) {
                                        # beware the Mac != MAC
                                        next if($platform eq 'Mac' &&
                                                $name !~ /^$platform\b/);
                                        $specific++;
                                        return 1 if
                                            $^O =~ /^(?:$OS{$platform})$/
                                    }
                                };
                                return $specific ? 0 : 1;
                            };

use constant UNSUPPORTED_OS
                            => sub {
                                my $buffer = shift or return;
                                if( $buffer =~
                                        /No support for OS|OS unsupported/im ) {
                                    return 1;
                                }
                                return 0;
                          };

use constant PERL_VERSION_TOO_LOW
                            => sub {
                                my $buffer = shift or return;
                                # ExtUtils::MakeMaker format
                                if( $buffer =~
                                        /Perl .*? required--this is only .*?/m ) {
                                    return 1;
                                }
                                # Module::Build format
                                if( $buffer =~
                                        /ERROR:( perl:)? Version .*?( of perl)? is installed, but we need version >= .*?/m ) {
                                    return 1;
                                }
                                return 0;
                          };

use constant NO_TESTS_DEFINED
                            => sub {
                                my $buffer = shift or return;
                                if( $buffer =~
                                  /(No tests defined( for [\w:]+ extension)?\.)/
                                  and $buffer !~ /\*\.t/m and
                                      $buffer !~ /test\.pl/m
                                ) {
                                    return $1
                                }

                                return;
                            };

### what stage did the test fail? ###
use constant TEST_FAIL_STAGE
                            => sub {
                                my $buffer = shift or return;
                                return $buffer =~ /(MAKE [A-Z]+).*/
                                    ? lc $1 :
                                    'fetch';
                            };

use constant MISSING_PREREQS_LIST
                            => sub {
                                my $buffer = shift;
                                my $last = ( split /\[ERROR\] .+? MAKE TEST/, $buffer )[-1];
                                my @list = map { s/.pm$//; s|/|::|g; $_ }
                                    ($last =~
                                        m/\bCan\'t locate (\S+) in \@INC/g);

                                ### make sure every missing prereq is only
                                ### listed once
                                {   my %seen;
                                    @list = grep { !$seen{$_}++ } @list
                                }

                                return @list;
                            };

use constant MISSING_EXTLIBS_LIST
                            => sub {
                                my $buffer = shift;
                                my @list =
                                    ($buffer =~
                                        m/No library found for -l([-\w]+)/g);

                                return @list;
                            };

use constant REPORT_MESSAGE_HEADER
                            => sub {
                                my ($version, $author) = @_;
                                return << ".";

Dear $author,

This is a computer-generated error report created automatically by
CPANPLUS, version $version. Testers personal comments may appear
at the end of this report.

.
                            };

use constant REPORT_MESSAGE_FAIL_HEADER
                            => sub {
                                my($stage, $buffer) = @_;
                                return << ".";

Thank you for uploading your work to CPAN.  However, it appears that
there were some problems testing your distribution.

TEST RESULTS:

Below is the error stack from stage '$stage':

$buffer

.
                            };

use constant REPORT_MESSAGE_PASS_HEADER
                            => sub {
                                my($stage, $buffer) = @_;
                                return << ".";

Thank you for uploading your work to CPAN.  Congratulations!
All tests were successful.

TEST RESULTS:

Below is the error stack from stage '$stage':

$buffer

.
                            };

use constant REPORT_MISSING_PREREQS
                            => sub {
                                my ($author,$email,@missing) = @_;
                                $author = ($author && $email)
                                            ? "$author ($email)"
                                            : 'Your Name Here';

                                my $modules = join "\n", @missing;
                                my $prereqs = join "\n",
                                    map {"\t'$_'\t=> '0',".
                                         " # or a minimum working version"}
                                    @missing;

                                return << ".";

MISSING PREREQUISITES:

It was observed that the test suite seem to fail without these modules:

$modules

As such, adding the prerequisite module(s) to 'PREREQ_PM' in your
Makefile.PL should solve this problem.  For example:

WriteMakefile(
    AUTHOR      => '$author',
    ... # other information
    PREREQ_PM   => {
$prereqs
    }
);

Thanks! :-)

.
                            };

use constant REPORT_MISSING_TESTS
                            => sub {
                                return << ".";
RECOMMENDATIONS:

It would be very helpful if you could include even a simple test
script in the next release, so people can verify which platforms
can successfully install them, as well as avoid regression bugs?

A simple 't/use.t' that says:

#!/usr/bin/env perl -w
use strict;
use Test;
BEGIN { plan tests => 1 }

use Your::Module::Here; ok(1);
exit;
__END__

would be appreciated.  If you are interested in making a more robust
test suite, please see the Test::Simple, Test::More and Test::Tutorial
documentation at <http://search.cpan.org/dist/Test-Simple/>.

Thanks!  :-)

.
                            };

use constant REPORT_LOADED_PREREQS
                            => sub {
                                my $mod = shift;
                                my $cb  = $mod->parent;
                                my $prq = $mod->status->prereqs || {};

                                ### not every prereq may be coming from CPAN
                                ### so maybe we wont find it in our module
                                ### tree at all...
                                ### skip ones that cant be found in teh list
                                ### as reported in #12723
                                my @prq = grep { defined }
                                          map { $cb->module_tree($_) }
                                          sort keys %$prq;

                                ### no prereqs?
                                return '' unless @prq;

                                ### some apparently, list what we loaded
                                my $str = << ".";
PREREQUISITES:

Here is a list of prerequisites you specified and versions we
managed to load:

.
                                $str .= join '',
                                        map { sprintf "\t%s %-30s %8s %8s\n",
                                              @$_

                                        } [' ', 'Module Name', 'Have', 'Want'],
                                          map { my $want = $prq->{$_->name};
                                              [ do { $_->is_uptodate(
                                                    version => $want
                                                   ) ? ' ' : '!'
                                                },
                                                $_->name,
                                                $_->installed_version,
                                                $want
                                              ],
                                        ### might be empty entries in there
                                        } grep { $_ } @prq;

                                return $str;
                            };

use constant REPORT_TOOLCHAIN_VERSIONS
                            => sub {
                                my $mod = shift;
                                my $cb  = $mod->parent;
                                #die unless $cb->isa('CPANPLUS::Backend');

                                my @toolchain_modules= qw(
                                    CPANPLUS
                                    CPANPLUS::Dist::Build
                                    Cwd
                                    ExtUtils::CBuilder
                                    ExtUtils::Command
                                    ExtUtils::Install
                                    ExtUtils::MakeMaker
                                    ExtUtils::Manifest
                                    ExtUtils::ParseXS
                                    File::Spec
                                    Module::Build
                                    Pod::Parser
                                    Pod::Simple
                                    Test::Harness
                                    Test::More
                                    version
                                );

                                my @toolchain =
                                          grep { $_ } #module_tree returns '' when module is not found
                                          map { $cb->module_tree($_) }
                                          sort @toolchain_modules;

                                ### no prereqs?
                                return '' unless @toolchain;

                                ### toolchain modules
                                my $str = << ".";

Perl module toolchain versions installed:
.
                                $str .= join '',
                                        map { sprintf "\t%-30s %8s\n",
                                              @$_

                                        } ['Module Name', 'Have'],
                                          map {
                                              [ $_->name,
                                                $_->installed_version,
                                              ],
                                        ### might be empty entries in there
                                        } @toolchain;

                                return $str;
                            };

use constant REPORT_TESTS_SKIPPED
                            => sub {
                                return << ".";

******************************** NOTE ********************************
***                                                                ***
***    The tests for this module were skipped during this build    ***
***                                                                ***
**********************************************************************

.
                            };

use constant REPORT_MESSAGE_FOOTER
                            => sub {
                                return << ".";

******************************** NOTE ********************************
The comments above are created mechanically, possibly without manual
checking by the sender.  As there are many people performing automatic
tests on each upload to CPAN, it is likely that you will receive
identical messages about the same problem.

If you believe that the message is mistaken, please reply to the first
one with correction and/or additional informations, and do not take
it personally.  We appreciate your patience. :)
**********************************************************************

Additional comments:

.
                             };

1;

# Local variables:
# c-indentation-style: bsd
# c-basic-offset: 4
# indent-tabs-mode: nil
# End:
# vim: expandtab shiftwidth=4:


text:
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: POGOProtos/Settings/Master/MoveSettings.proto

package POGOProtos.Settings.Master;

public final class MoveSettingsOuterClass {
  private MoveSettingsOuterClass() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface MoveSettingsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:POGOProtos.Settings.Master.MoveSettings)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .POGOProtos.Enums.PokemonMove movement_id = 1;
     */
    int getMovementIdValue();
    /**
     * optional .POGOProtos.Enums.PokemonMove movement_id = 1;
     */
    POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove getMovementId();

    /**
     * optional int32 animation_id = 2;
     */
    int getAnimationId();

    /**
     * optional .POGOProtos.Enums.PokemonType pokemon_type = 3;
     */
    int getPokemonTypeValue();
    /**
     * optional .POGOProtos.Enums.PokemonType pokemon_type = 3;
     */
    POGOProtos.Enums.PokemonTypeOuterClass.PokemonType getPokemonType();

    /**
     * optional float power = 4;
     */
    float getPower();

    /**
     * optional float accuracy_chance = 5;
     */
    float getAccuracyChance();

    /**
     * optional float critical_chance = 6;
     */
    float getCriticalChance();

    /**
     * optional float heal_scalar = 7;
     */
    float getHealScalar();

    /**
     * optional float stamina_loss_scalar = 8;
     */
    float getStaminaLossScalar();

    /**
     * optional int32 trainer_level_min = 9;
     */
    int getTrainerLevelMin();

    /**
     * optional int32 trainer_level_max = 10;
     */
    int getTrainerLevelMax();

    /**
     * optional string vfx_name = 11;
     */
    java.lang.String getVfxName();
    /**
     * optional string vfx_name = 11;
     */
    com.google.protobuf.ByteString
        getVfxNameBytes();

    /**
     * optional int32 duration_ms = 12;
     */
    int getDurationMs();

    /**
     * optional int32 damage_window_start_ms = 13;
     */
    int getDamageWindowStartMs();

    /**
     * optional int32 damage_window_end_ms = 14;
     */
    int getDamageWindowEndMs();

    /**
     * optional int32 energy_delta = 15;
     */
    int getEnergyDelta();
  }
  /**
   * Protobuf type {@code POGOProtos.Settings.Master.MoveSettings}
   */
  public  static final class MoveSettings extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:POGOProtos.Settings.Master.MoveSettings)
      MoveSettingsOrBuilder {
    // Use MoveSettings.newBuilder() to construct.
    private MoveSettings(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MoveSettings() {
      movementId_ = 0;
      animationId_ = 0;
      pokemonType_ = 0;
      power_ = 0F;
      accuracyChance_ = 0F;
      criticalChance_ = 0F;
      healScalar_ = 0F;
      staminaLossScalar_ = 0F;
      trainerLevelMin_ = 0;
      trainerLevelMax_ = 0;
      vfxName_ = "";
      durationMs_ = 0;
      damageWindowStartMs_ = 0;
      damageWindowEndMs_ = 0;
      energyDelta_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private MoveSettings(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              movementId_ = rawValue;
              break;
            }
            case 16: {

              animationId_ = input.readInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();

              pokemonType_ = rawValue;
              break;
            }
            case 37: {

              power_ = input.readFloat();
              break;
            }
            case 45: {

              accuracyChance_ = input.readFloat();
              break;
            }
            case 53: {

              criticalChance_ = input.readFloat();
              break;
            }
            case 61: {

              healScalar_ = input.readFloat();
              break;
            }
            case 69: {

              staminaLossScalar_ = input.readFloat();
              break;
            }
            case 72: {

              trainerLevelMin_ = input.readInt32();
              break;
            }
            case 80: {

              trainerLevelMax_ = input.readInt32();
              break;
            }
            case 90: {
              java.lang.String s = input.readStringRequireUtf8();

              vfxName_ = s;
              break;
            }
            case 96: {

              durationMs_ = input.readInt32();
              break;
            }
            case 104: {

              damageWindowStartMs_ = input.readInt32();
              break;
            }
            case 112: {

              damageWindowEndMs_ = input.readInt32();
              break;
            }
            case 120: {

              energyDelta_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return POGOProtos.Settings.Master.MoveSettingsOuterClass.internal_static_POGOProtos_Settings_Master_MoveSettings_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return POGOProtos.Settings.Master.MoveSettingsOuterClass.internal_static_POGOProtos_Settings_Master_MoveSettings_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings.class, POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings.Builder.class);
    }

    public static final int MOVEMENT_ID_FIELD_NUMBER = 1;
    private int movementId_;
    /**
     * optional .POGOProtos.Enums.PokemonMove movement_id = 1;
     */
    public int getMovementIdValue() {
      return movementId_;
    }
    /**
     * optional .POGOProtos.Enums.PokemonMove movement_id = 1;
     */
    public POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove getMovementId() {
      POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove result = POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove.valueOf(movementId_);
      return result == null ? POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove.UNRECOGNIZED : result;
    }

    public static final int ANIMATION_ID_FIELD_NUMBER = 2;
    private int animationId_;
    /**
     * optional int32 animation_id = 2;
     */
    public int getAnimationId() {
      return animationId_;
    }

    public static final int POKEMON_TYPE_FIELD_NUMBER = 3;
    private int pokemonType_;
    /**
     * optional .POGOProtos.Enums.PokemonType pokemon_type = 3;
     */
    public int getPokemonTypeValue() {
      return pokemonType_;
    }
    /**
     * optional .POGOProtos.Enums.PokemonType pokemon_type = 3;
     */
    public POGOProtos.Enums.PokemonTypeOuterClass.PokemonType getPokemonType() {
      POGOProtos.Enums.PokemonTypeOuterClass.PokemonType result = POGOProtos.Enums.PokemonTypeOuterClass.PokemonType.valueOf(pokemonType_);
      return result == null ? POGOProtos.Enums.PokemonTypeOuterClass.PokemonType.UNRECOGNIZED : result;
    }

    public static final int POWER_FIELD_NUMBER = 4;
    private float power_;
    /**
     * optional float power = 4;
     */
    public float getPower() {
      return power_;
    }

    public static final int ACCURACY_CHANCE_FIELD_NUMBER = 5;
    private float accuracyChance_;
    /**
     * optional float accuracy_chance = 5;
     */
    public float getAccuracyChance() {
      return accuracyChance_;
    }

    public static final int CRITICAL_CHANCE_FIELD_NUMBER = 6;
    private float criticalChance_;
    /**
     * optional float critical_chance = 6;
     */
    public float getCriticalChance() {
      return criticalChance_;
    }

    public static final int HEAL_SCALAR_FIELD_NUMBER = 7;
    private float healScalar_;
    /**
     * optional float heal_scalar = 7;
     */
    public float getHealScalar() {
      return healScalar_;
    }

    public static final int STAMINA_LOSS_SCALAR_FIELD_NUMBER = 8;
    private float staminaLossScalar_;
    /**
     * optional float stamina_loss_scalar = 8;
     */
    public float getStaminaLossScalar() {
      return staminaLossScalar_;
    }

    public static final int TRAINER_LEVEL_MIN_FIELD_NUMBER = 9;
    private int trainerLevelMin_;
    /**
     * optional int32 trainer_level_min = 9;
     */
    public int getTrainerLevelMin() {
      return trainerLevelMin_;
    }

    public static final int TRAINER_LEVEL_MAX_FIELD_NUMBER = 10;
    private int trainerLevelMax_;
    /**
     * optional int32 trainer_level_max = 10;
     */
    public int getTrainerLevelMax() {
      return trainerLevelMax_;
    }

    public static final int VFX_NAME_FIELD_NUMBER = 11;
    private volatile java.lang.Object vfxName_;
    /**
     * optional string vfx_name = 11;
     */
    public java.lang.String getVfxName() {
      java.lang.Object ref = vfxName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        vfxName_ = s;
        return s;
      }
    }
    /**
     * optional string vfx_name = 11;
     */
    public com.google.protobuf.ByteString
        getVfxNameBytes() {
      java.lang.Object ref = vfxName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vfxName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DURATION_MS_FIELD_NUMBER = 12;
    private int durationMs_;
    /**
     * optional int32 duration_ms = 12;
     */
    public int getDurationMs() {
      return durationMs_;
    }

    public static final int DAMAGE_WINDOW_START_MS_FIELD_NUMBER = 13;
    private int damageWindowStartMs_;
    /**
     * optional int32 damage_window_start_ms = 13;
     */
    public int getDamageWindowStartMs() {
      return damageWindowStartMs_;
    }

    public static final int DAMAGE_WINDOW_END_MS_FIELD_NUMBER = 14;
    private int damageWindowEndMs_;
    /**
     * optional int32 damage_window_end_ms = 14;
     */
    public int getDamageWindowEndMs() {
      return damageWindowEndMs_;
    }

    public static final int ENERGY_DELTA_FIELD_NUMBER = 15;
    private int energyDelta_;
    /**
     * optional int32 energy_delta = 15;
     */
    public int getEnergyDelta() {
      return energyDelta_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (movementId_ != POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove.MOVE_UNSET.getNumber()) {
        output.writeEnum(1, movementId_);
      }
      if (animationId_ != 0) {
        output.writeInt32(2, animationId_);
      }
      if (pokemonType_ != POGOProtos.Enums.PokemonTypeOuterClass.PokemonType.POKEMON_TYPE_NONE.getNumber()) {
        output.writeEnum(3, pokemonType_);
      }
      if (power_ != 0F) {
        output.writeFloat(4, power_);
      }
      if (accuracyChance_ != 0F) {
        output.writeFloat(5, accuracyChance_);
      }
      if (criticalChance_ != 0F) {
        output.writeFloat(6, criticalChance_);
      }
      if (healScalar_ != 0F) {
        output.writeFloat(7, healScalar_);
      }
      if (staminaLossScalar_ != 0F) {
        output.writeFloat(8, staminaLossScalar_);
      }
      if (trainerLevelMin_ != 0) {
        output.writeInt32(9, trainerLevelMin_);
      }
      if (trainerLevelMax_ != 0) {
        output.writeInt32(10, trainerLevelMax_);
      }
      if (!getVfxNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, vfxName_);
      }
      if (durationMs_ != 0) {
        output.writeInt32(12, durationMs_);
      }
      if (damageWindowStartMs_ != 0) {
        output.writeInt32(13, damageWindowStartMs_);
      }
      if (damageWindowEndMs_ != 0) {
        output.writeInt32(14, damageWindowEndMs_);
      }
      if (energyDelta_ != 0) {
        output.writeInt32(15, energyDelta_);
      }
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (movementId_ != POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove.MOVE_UNSET.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, movementId_);
      }
      if (animationId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, animationId_);
      }
      if (pokemonType_ != POGOProtos.Enums.PokemonTypeOuterClass.PokemonType.POKEMON_TYPE_NONE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, pokemonType_);
      }
      if (power_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, power_);
      }
      if (accuracyChance_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, accuracyChance_);
      }
      if (criticalChance_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(6, criticalChance_);
      }
      if (healScalar_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(7, healScalar_);
      }
      if (staminaLossScalar_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(8, staminaLossScalar_);
      }
      if (trainerLevelMin_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, trainerLevelMin_);
      }
      if (trainerLevelMax_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, trainerLevelMax_);
      }
      if (!getVfxNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, vfxName_);
      }
      if (durationMs_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(12, durationMs_);
      }
      if (damageWindowStartMs_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, damageWindowStartMs_);
      }
      if (damageWindowEndMs_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(14, damageWindowEndMs_);
      }
      if (energyDelta_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(15, energyDelta_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings)) {
        return super.equals(obj);
      }
      POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings other = (POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings) obj;

      boolean result = true;
      result = result && movementId_ == other.movementId_;
      result = result && (getAnimationId()
          == other.getAnimationId());
      result = result && pokemonType_ == other.pokemonType_;
      result = result && (
          java.lang.Float.floatToIntBits(getPower())
          == java.lang.Float.floatToIntBits(
              other.getPower()));
      result = result && (
          java.lang.Float.floatToIntBits(getAccuracyChance())
          == java.lang.Float.floatToIntBits(
              other.getAccuracyChance()));
      result = result && (
          java.lang.Float.floatToIntBits(getCriticalChance())
          == java.lang.Float.floatToIntBits(
              other.getCriticalChance()));
      result = result && (
          java.lang.Float.floatToIntBits(getHealScalar())
          == java.lang.Float.floatToIntBits(
              other.getHealScalar()));
      result = result && (
          java.lang.Float.floatToIntBits(getStaminaLossScalar())
          == java.lang.Float.floatToIntBits(
              other.getStaminaLossScalar()));
      result = result && (getTrainerLevelMin()
          == other.getTrainerLevelMin());
      result = result && (getTrainerLevelMax()
          == other.getTrainerLevelMax());
      result = result && getVfxName()
          .equals(other.getVfxName());
      result = result && (getDurationMs()
          == other.getDurationMs());
      result = result && (getDamageWindowStartMs()
          == other.getDamageWindowStartMs());
      result = result && (getDamageWindowEndMs()
          == other.getDamageWindowEndMs());
      result = result && (getEnergyDelta()
          == other.getEnergyDelta());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + MOVEMENT_ID_FIELD_NUMBER;
      hash = (53 * hash) + movementId_;
      hash = (37 * hash) + ANIMATION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAnimationId();
      hash = (37 * hash) + POKEMON_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + pokemonType_;
      hash = (37 * hash) + POWER_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getPower());
      hash = (37 * hash) + ACCURACY_CHANCE_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getAccuracyChance());
      hash = (37 * hash) + CRITICAL_CHANCE_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getCriticalChance());
      hash = (37 * hash) + HEAL_SCALAR_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getHealScalar());
      hash = (37 * hash) + STAMINA_LOSS_SCALAR_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getStaminaLossScalar());
      hash = (37 * hash) + TRAINER_LEVEL_MIN_FIELD_NUMBER;
      hash = (53 * hash) + getTrainerLevelMin();
      hash = (37 * hash) + TRAINER_LEVEL_MAX_FIELD_NUMBER;
      hash = (53 * hash) + getTrainerLevelMax();
      hash = (37 * hash) + VFX_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getVfxName().hashCode();
      hash = (37 * hash) + DURATION_MS_FIELD_NUMBER;
      hash = (53 * hash) + getDurationMs();
      hash = (37 * hash) + DAMAGE_WINDOW_START_MS_FIELD_NUMBER;
      hash = (53 * hash) + getDamageWindowStartMs();
      hash = (37 * hash) + DAMAGE_WINDOW_END_MS_FIELD_NUMBER;
      hash = (53 * hash) + getDamageWindowEndMs();
      hash = (37 * hash) + ENERGY_DELTA_FIELD_NUMBER;
      hash = (53 * hash) + getEnergyDelta();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code POGOProtos.Settings.Master.MoveSettings}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:POGOProtos.Settings.Master.MoveSettings)
        POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettingsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return POGOProtos.Settings.Master.MoveSettingsOuterClass.internal_static_POGOProtos_Settings_Master_MoveSettings_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return POGOProtos.Settings.Master.MoveSettingsOuterClass.internal_static_POGOProtos_Settings_Master_MoveSettings_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings.class, POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings.Builder.class);
      }

      // Construct using POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        movementId_ = 0;

        animationId_ = 0;

        pokemonType_ = 0;

        power_ = 0F;

        accuracyChance_ = 0F;

        criticalChance_ = 0F;

        healScalar_ = 0F;

        staminaLossScalar_ = 0F;

        trainerLevelMin_ = 0;

        trainerLevelMax_ = 0;

        vfxName_ = "";

        durationMs_ = 0;

        damageWindowStartMs_ = 0;

        damageWindowEndMs_ = 0;

        energyDelta_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return POGOProtos.Settings.Master.MoveSettingsOuterClass.internal_static_POGOProtos_Settings_Master_MoveSettings_descriptor;
      }

      public POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings getDefaultInstanceForType() {
        return POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings.getDefaultInstance();
      }

      public POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings build() {
        POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings buildPartial() {
        POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings result = new POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings(this);
        result.movementId_ = movementId_;
        result.animationId_ = animationId_;
        result.pokemonType_ = pokemonType_;
        result.power_ = power_;
        result.accuracyChance_ = accuracyChance_;
        result.criticalChance_ = criticalChance_;
        result.healScalar_ = healScalar_;
        result.staminaLossScalar_ = staminaLossScalar_;
        result.trainerLevelMin_ = trainerLevelMin_;
        result.trainerLevelMax_ = trainerLevelMax_;
        result.vfxName_ = vfxName_;
        result.durationMs_ = durationMs_;
        result.damageWindowStartMs_ = damageWindowStartMs_;
        result.damageWindowEndMs_ = damageWindowEndMs_;
        result.energyDelta_ = energyDelta_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings) {
          return mergeFrom((POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings other) {
        if (other == POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings.getDefaultInstance()) return this;
        if (other.movementId_ != 0) {
          setMovementIdValue(other.getMovementIdValue());
        }
        if (other.getAnimationId() != 0) {
          setAnimationId(other.getAnimationId());
        }
        if (other.pokemonType_ != 0) {
          setPokemonTypeValue(other.getPokemonTypeValue());
        }
        if (other.getPower() != 0F) {
          setPower(other.getPower());
        }
        if (other.getAccuracyChance() != 0F) {
          setAccuracyChance(other.getAccuracyChance());
        }
        if (other.getCriticalChance() != 0F) {
          setCriticalChance(other.getCriticalChance());
        }
        if (other.getHealScalar() != 0F) {
          setHealScalar(other.getHealScalar());
        }
        if (other.getStaminaLossScalar() != 0F) {
          setStaminaLossScalar(other.getStaminaLossScalar());
        }
        if (other.getTrainerLevelMin() != 0) {
          setTrainerLevelMin(other.getTrainerLevelMin());
        }
        if (other.getTrainerLevelMax() != 0) {
          setTrainerLevelMax(other.getTrainerLevelMax());
        }
        if (!other.getVfxName().isEmpty()) {
          vfxName_ = other.vfxName_;
          onChanged();
        }
        if (other.getDurationMs() != 0) {
          setDurationMs(other.getDurationMs());
        }
        if (other.getDamageWindowStartMs() != 0) {
          setDamageWindowStartMs(other.getDamageWindowStartMs());
        }
        if (other.getDamageWindowEndMs() != 0) {
          setDamageWindowEndMs(other.getDamageWindowEndMs());
        }
        if (other.getEnergyDelta() != 0) {
          setEnergyDelta(other.getEnergyDelta());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int movementId_ = 0;
      /**
       * optional .POGOProtos.Enums.PokemonMove movement_id = 1;
       */
      public int getMovementIdValue() {
        return movementId_;
      }
      /**
       * optional .POGOProtos.Enums.PokemonMove movement_id = 1;
       */
      public Builder setMovementIdValue(int value) {
        movementId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .POGOProtos.Enums.PokemonMove movement_id = 1;
       */
      public POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove getMovementId() {
        POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove result = POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove.valueOf(movementId_);
        return result == null ? POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove.UNRECOGNIZED : result;
      }
      /**
       * optional .POGOProtos.Enums.PokemonMove movement_id = 1;
       */
      public Builder setMovementId(POGOProtos.Enums.PokemonMoveOuterClass.PokemonMove value) {
        if (value == null) {
          throw new NullPointerException();
        }

        movementId_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * optional .POGOProtos.Enums.PokemonMove movement_id = 1;
       */
      public Builder clearMovementId() {

        movementId_ = 0;
        onChanged();
        return this;
      }

      private int animationId_ ;
      /**
       * optional int32 animation_id = 2;
       */
      public int getAnimationId() {
        return animationId_;
      }
      /**
       * optional int32 animation_id = 2;
       */
      public Builder setAnimationId(int value) {

        animationId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 animation_id = 2;
       */
      public Builder clearAnimationId() {

        animationId_ = 0;
        onChanged();
        return this;
      }

      private int pokemonType_ = 0;
      /**
       * optional .POGOProtos.Enums.PokemonType pokemon_type = 3;
       */
      public int getPokemonTypeValue() {
        return pokemonType_;
      }
      /**
       * optional .POGOProtos.Enums.PokemonType pokemon_type = 3;
       */
      public Builder setPokemonTypeValue(int value) {
        pokemonType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .POGOProtos.Enums.PokemonType pokemon_type = 3;
       */
      public POGOProtos.Enums.PokemonTypeOuterClass.PokemonType getPokemonType() {
        POGOProtos.Enums.PokemonTypeOuterClass.PokemonType result = POGOProtos.Enums.PokemonTypeOuterClass.PokemonType.valueOf(pokemonType_);
        return result == null ? POGOProtos.Enums.PokemonTypeOuterClass.PokemonType.UNRECOGNIZED : result;
      }
      /**
       * optional .POGOProtos.Enums.PokemonType pokemon_type = 3;
       */
      public Builder setPokemonType(POGOProtos.Enums.PokemonTypeOuterClass.PokemonType value) {
        if (value == null) {
          throw new NullPointerException();
        }

        pokemonType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * optional .POGOProtos.Enums.PokemonType pokemon_type = 3;
       */
      public Builder clearPokemonType() {

        pokemonType_ = 0;
        onChanged();
        return this;
      }

      private float power_ ;
      /**
       * optional float power = 4;
       */
      public float getPower() {
        return power_;
      }
      /**
       * optional float power = 4;
       */
      public Builder setPower(float value) {

        power_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float power = 4;
       */
      public Builder clearPower() {

        power_ = 0F;
        onChanged();
        return this;
      }

      private float accuracyChance_ ;
      /**
       * optional float accuracy_chance = 5;
       */
      public float getAccuracyChance() {
        return accuracyChance_;
      }
      /**
       * optional float accuracy_chance = 5;
       */
      public Builder setAccuracyChance(float value) {

        accuracyChance_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float accuracy_chance = 5;
       */
      public Builder clearAccuracyChance() {

        accuracyChance_ = 0F;
        onChanged();
        return this;
      }

      private float criticalChance_ ;
      /**
       * optional float critical_chance = 6;
       */
      public float getCriticalChance() {
        return criticalChance_;
      }
      /**
       * optional float critical_chance = 6;
       */
      public Builder setCriticalChance(float value) {

        criticalChance_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float critical_chance = 6;
       */
      public Builder clearCriticalChance() {

        criticalChance_ = 0F;
        onChanged();
        return this;
      }

      private float healScalar_ ;
      /**
       * optional float heal_scalar = 7;
       */
      public float getHealScalar() {
        return healScalar_;
      }
      /**
       * optional float heal_scalar = 7;
       */
      public Builder setHealScalar(float value) {

        healScalar_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float heal_scalar = 7;
       */
      public Builder clearHealScalar() {

        healScalar_ = 0F;
        onChanged();
        return this;
      }

      private float staminaLossScalar_ ;
      /**
       * optional float stamina_loss_scalar = 8;
       */
      public float getStaminaLossScalar() {
        return staminaLossScalar_;
      }
      /**
       * optional float stamina_loss_scalar = 8;
       */
      public Builder setStaminaLossScalar(float value) {

        staminaLossScalar_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float stamina_loss_scalar = 8;
       */
      public Builder clearStaminaLossScalar() {

        staminaLossScalar_ = 0F;
        onChanged();
        return this;
      }

      private int trainerLevelMin_ ;
      /**
       * optional int32 trainer_level_min = 9;
       */
      public int getTrainerLevelMin() {
        return trainerLevelMin_;
      }
      /**
       * optional int32 trainer_level_min = 9;
       */
      public Builder setTrainerLevelMin(int value) {

        trainerLevelMin_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 trainer_level_min = 9;
       */
      public Builder clearTrainerLevelMin() {

        trainerLevelMin_ = 0;
        onChanged();
        return this;
      }

      private int trainerLevelMax_ ;
      /**
       * optional int32 trainer_level_max = 10;
       */
      public int getTrainerLevelMax() {
        return trainerLevelMax_;
      }
      /**
       * optional int32 trainer_level_max = 10;
       */
      public Builder setTrainerLevelMax(int value) {

        trainerLevelMax_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 trainer_level_max = 10;
       */
      public Builder clearTrainerLevelMax() {

        trainerLevelMax_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object vfxName_ = "";
      /**
       * optional string vfx_name = 11;
       */
      public java.lang.String getVfxName() {
        java.lang.Object ref = vfxName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          vfxName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string vfx_name = 11;
       */
      public com.google.protobuf.ByteString
          getVfxNameBytes() {
        java.lang.Object ref = vfxName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vfxName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string vfx_name = 11;
       */
      public Builder setVfxName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }

        vfxName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string vfx_name = 11;
       */
      public Builder clearVfxName() {

        vfxName_ = getDefaultInstance().getVfxName();
        onChanged();
        return this;
      }
      /**
       * optional string vfx_name = 11;
       */
      public Builder setVfxNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);

        vfxName_ = value;
        onChanged();
        return this;
      }

      private int durationMs_ ;
      /**
       * optional int32 duration_ms = 12;
       */
      public int getDurationMs() {
        return durationMs_;
      }
      /**
       * optional int32 duration_ms = 12;
       */
      public Builder setDurationMs(int value) {

        durationMs_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 duration_ms = 12;
       */
      public Builder clearDurationMs() {

        durationMs_ = 0;
        onChanged();
        return this;
      }

      private int damageWindowStartMs_ ;
      /**
       * optional int32 damage_window_start_ms = 13;
       */
      public int getDamageWindowStartMs() {
        return damageWindowStartMs_;
      }
      /**
       * optional int32 damage_window_start_ms = 13;
       */
      public Builder setDamageWindowStartMs(int value) {

        damageWindowStartMs_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 damage_window_start_ms = 13;
       */
      public Builder clearDamageWindowStartMs() {

        damageWindowStartMs_ = 0;
        onChanged();
        return this;
      }

      private int damageWindowEndMs_ ;
      /**
       * optional int32 damage_window_end_ms = 14;
       */
      public int getDamageWindowEndMs() {
        return damageWindowEndMs_;
      }
      /**
       * optional int32 damage_window_end_ms = 14;
       */
      public Builder setDamageWindowEndMs(int value) {

        damageWindowEndMs_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 damage_window_end_ms = 14;
       */
      public Builder clearDamageWindowEndMs() {

        damageWindowEndMs_ = 0;
        onChanged();
        return this;
      }

      private int energyDelta_ ;
      /**
       * optional int32 energy_delta = 15;
       */
      public int getEnergyDelta() {
        return energyDelta_;
      }
      /**
       * optional int32 energy_delta = 15;
       */
      public Builder setEnergyDelta(int value) {

        energyDelta_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 energy_delta = 15;
       */
      public Builder clearEnergyDelta() {

        energyDelta_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

      // @@protoc_insertion_point(builder_scope:POGOProtos.Settings.Master.MoveSettings)
    }

    // @@protoc_insertion_point(class_scope:POGOProtos.Settings.Master.MoveSettings)
    private static final POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings();
    }

    public static POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MoveSettings>
        PARSER = new com.google.protobuf.AbstractParser<MoveSettings>() {
      public MoveSettings parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new MoveSettings(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<MoveSettings> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<MoveSettings> getParserForType() {
      return PARSER;
    }

    public POGOProtos.Settings.Master.MoveSettingsOuterClass.MoveSettings getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_POGOProtos_Settings_Master_MoveSettings_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_POGOProtos_Settings_Master_MoveSettings_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n-POGOProtos/Settings/Master/MoveSetting" +
      "s.proto\022\032POGOProtos.Settings.Master\032\"POG" +
      "OProtos/Enums/PokemonType.proto\032\"POGOPro" +
      "tos/Enums/PokemonMove.proto\"\261\003\n\014MoveSett" +
      "ings\0222\n\013movement_id\030\001 \001(\0162\035.POGOProtos.E" +
      "nums.PokemonMove\022\024\n\014animation_id\030\002 \001(\005\0223" +
      "\n\014pokemon_type\030\003 \001(\0162\035.POGOProtos.Enums." +
      "PokemonType\022\r\n\005power\030\004 \001(\002\022\027\n\017accuracy_c" +
      "hance\030\005 \001(\002\022\027\n\017critical_chance\030\006 \001(\002\022\023\n\013" +
      "heal_scalar\030\007 \001(\002\022\033\n\023stamina_loss_scalar",
      "\030\010 \001(\002\022\031\n\021trainer_level_min\030\t \001(\005\022\031\n\021tra" +
      "iner_level_max\030\n \001(\005\022\020\n\010vfx_name\030\013 \001(\t\022\023" +
      "\n\013duration_ms\030\014 \001(\005\022\036\n\026damage_window_sta" +
      "rt_ms\030\r \001(\005\022\034\n\024damage_window_end_ms\030\016 \001(" +
      "\005\022\024\n\014energy_delta\030\017 \001(\005b\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          POGOProtos.Enums.PokemonTypeOuterClass.getDescriptor(),
          POGOProtos.Enums.PokemonMoveOuterClass.getDescriptor(),
        }, assigner);
    internal_static_POGOProtos_Settings_Master_MoveSettings_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_POGOProtos_Settings_Master_MoveSettings_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_POGOProtos_Settings_Master_MoveSettings_descriptor,
        new java.lang.String[] { "MovementId", "AnimationId", "PokemonType", "Power", "AccuracyChance", "CriticalChance", "HealScalar", "StaminaLossScalar", "TrainerLevelMin", "TrainerLevelMax", "VfxName", "DurationMs", "DamageWindowStartMs", "DamageWindowEndMs", "EnergyDelta", });
    POGOProtos.Enums.PokemonTypeOuterClass.getDescriptor();
    POGOProtos.Enums.PokemonMoveOuterClass.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}


text:
module Fog
  module Compute
    class Aliyun
      class Real
        # {Aliyun API Reference}[https://docs.aliyun.com/?spm=5176.100054.3.1.DGkmH7#/pub/ecs/open-api/vpc&describevpcs]
        def list_vpn_gateways(options = {})
          action = 'DescribeVpnGateways'
          sigNonce = randonStr
          time = Time.new.utc

          parameters = defalutVPCParameters(action, sigNonce, time)
          pathUrl = defaultAliyunVPCUri(action, sigNonce, time)

          _VpcId = options[:vpcId]
          if _VpcId
            parameters['VpcId'] = _VpcId
            pathUrl += '&VpcId='
            pathUrl += _VpcId
          end

          pageNumber = options[:pageNumber]
          pageSize = options[:pageSize]
          if pageNumber
            parameters['PageNumber'] = pageNumber
            pathUrl += '&PageNumber='
            pathUrl += pageNumber
          end

          pageSize ||= '50'
          parameters['PageSize'] = pageSize
          pathUrl += '&PageSize='
          pathUrl += pageSize

          signature = sign(@aliyun_accesskey_secret, parameters)
          pathUrl += '&Signature='
          pathUrl += signature

          VPCrequest(
            expects: [200, 203],
            method: 'GET',
            path: pathUrl
          )
        end
      end
    end
  end
end


text:
#ifndef _SYS_STAT_H_
#define _SYS_STAT_H_

#include <sys/cdefs.h>
#include <sys/types.h>
#include <sys/time.h>
#include <linux/stat.h>

#include <endian.h>

__BEGIN_DECLS

/* really matches stat64 in the kernel, hence the padding
 * Note: The kernel zero's the padded region because glibc might read them
 * in the hope that the kernel has stretched to using larger sizes.
 */
#ifdef __mips__
struct stat {
    unsigned long       st_dev;
    unsigned long       __pad0[3];

    unsigned long long  st_ino;

    unsigned int        st_mode;
    unsigned int        st_nlink;

    unsigned long       st_uid;
    unsigned long       st_gid;

    unsigned long       st_rdev;
    unsigned long       __pad1[3];

    long long           st_size;

    unsigned long       st_atime;
    unsigned long       st_atime_nsec;

    unsigned long       st_mtime;
    unsigned long       st_mtime_nsec;

    unsigned long       st_ctime;
    unsigned long       st_ctime_nsec;

    unsigned long       st_blksize;
    unsigned long       __pad2;

    unsigned long long  st_blocks;
};
#else
struct stat {
    unsigned long long  st_dev;
    unsigned char       __pad0[4];

    unsigned long       __st_ino;
    unsigned int        st_mode;
    unsigned int        st_nlink;

    unsigned long       st_uid;
    unsigned long       st_gid;

    unsigned long long  st_rdev;
    unsigned char       __pad3[4];

    long long           st_size;
    unsigned long	st_blksize;
    unsigned long long  st_blocks;

    unsigned long       st_atime;
    unsigned long       st_atime_nsec;

    unsigned long       st_mtime;
    unsigned long       st_mtime_nsec;

    unsigned long       st_ctime;
    unsigned long       st_ctime_nsec;

    unsigned long long  st_ino;
};
#endif

/* For compatibility with GLibc, we provide macro aliases
 * for the non-Posix nano-seconds accessors.
 */
#define  st_atimensec  st_atime_nsec
#define  st_mtimensec  st_mtime_nsec
#define  st_ctimensec  st_ctime_nsec

#ifdef __USE_BSD
/* Permission macros provided by glibc for compatibility with BSDs. */
#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) /* 0777 */
#define ALLPERMS    (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) /* 07777 */
#define DEFFILEMODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) /* 0666 */
#endif

extern int    chmod(const char *, mode_t);
extern int    fchmod(int, mode_t);
extern int    mkdir(const char *, mode_t);

extern int    stat(const char *, struct stat *);
extern int    fstat(int, struct stat *);
extern int    lstat(const char *, struct stat *);
extern int    mknod(const char *, mode_t, dev_t);
extern mode_t umask(mode_t);

#if defined(__BIONIC_FORTIFY)

extern mode_t __umask_chk(mode_t);
extern mode_t __umask_real(mode_t)
    __asm__(__USER_LABEL_PREFIX__ "umask");
__errordecl(__umask_invalid_mode, "umask called with invalid mode");

__BIONIC_FORTIFY_INLINE
mode_t umask(mode_t mode) {
#if !defined(__clang__)
  if (__builtin_constant_p(mode)) {
    if ((mode & 0777) != mode) {
      __umask_invalid_mode();
    }
    return __umask_real(mode);
  }
#endif
  return __umask_chk(mode);
}
#endif /* defined(__BIONIC_FORTIFY) */

#define  stat64    stat
#define  fstat64   fstat
#define  lstat64   lstat

static __inline__ int mkfifo(const char *__p, mode_t __m)
{
  return mknod(__p, (__m & ~S_IFMT) | S_IFIFO, (dev_t)0);
}

extern int  fstatat(int dirfd, const char *path, struct stat *buf, int flags);
extern int  mkdirat(int dirfd, const char *pathname, mode_t mode);
extern int fchownat(int dirfd, const char *path, uid_t owner, gid_t group, int flags);
extern int fchmodat(int dirfd, const char *path, mode_t mode, int flags);
extern int renameat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath);

# define UTIME_NOW      ((1l << 30) - 1l)
# define UTIME_OMIT     ((1l << 30) - 2l)
extern int utimensat(int fd, const char *path, const struct timespec times[2], int flags);
extern int futimens(int fd, const struct timespec times[2]);

__END_DECLS

#endif /* _SYS_STAT_H_ */


text:
<?php

namespace Spatie\UptimeMonitor\Helpers\UptimeResponseCheckers;

use Illuminate\Support\Str;
use Psr\Http\Message\ResponseInterface;
use Spatie\UptimeMonitor\Models\Monitor;

class LookForStringChecker implements UptimeResponseChecker
{
    public function isValidResponse(ResponseInterface $response, Monitor $monitor): bool
    {
        if (empty($monitor->look_for_string)) {
            return true;
        }

        return Str::contains((string) $response->getBody(), $monitor->look_for_string);
    }

    public function getFailureReason(ResponseInterface $response, Monitor $monitor): string
    {
        return "String `{$monitor->look_for_string}` was not found on the response.";
    }
}


text:
#include "third_party/blink/renderer/platform/geometry/float_point.h"

#include <math.h>

#include <algorithm>
#include <limits>

#include "third_party/blink/renderer/platform/geometry/layout_point.h"
#include "third_party/blink/renderer/platform/geometry/layout_size.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "third_party/blink/renderer/platform/wtf/text/text_stream.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#include "third_party/skia/include/core/SkPoint.h"

namespace blink {

float FloatPoint::SlopeAngleRadians() const {
  return atan2f(y_, x_);
}

float FloatPoint::length() const {
  return hypotf(x_, y_);
}

FloatPoint FloatPoint::ExpandedTo(const FloatPoint& other) const {
  return FloatPoint(std::max(x_, other.x_), std::max(y_, other.y_));
}

FloatPoint FloatPoint::ShrunkTo(const FloatPoint& other) const {
  return FloatPoint(std::min(x_, other.x_), std::min(y_, other.y_));
}

FloatPoint FloatPoint::NarrowPrecision(double x, double y) {
  return FloatPoint(clampTo<float>(x), clampTo<float>(y));
}

bool FindIntersection(const FloatPoint& p1,
                      const FloatPoint& p2,
                      const FloatPoint& d1,
                      const FloatPoint& d2,
                      FloatPoint& intersection) {
  float px_length = p2.X() - p1.X();
  float py_length = p2.Y() - p1.Y();

  float dx_length = d2.X() - d1.X();
  float dy_length = d2.Y() - d1.Y();

  float denom = px_length * dy_length - py_length * dx_length;
  if (!denom)
    return false;

  float param =
      ((d1.X() - p1.X()) * dy_length - (d1.Y() - p1.Y()) * dx_length) / denom;

  intersection.SetX(p1.X() + param * px_length);
  intersection.SetY(p1.Y() + param * py_length);
  return true;
}

std::ostream& operator<<(std::ostream& ostream, const FloatPoint& point) {
  return ostream << point.ToString();
}

String FloatPoint::ToString() const {
  return String::Format("%lg,%lg", X(), Y());
}

WTF::TextStream& operator<<(WTF::TextStream& ts, const FloatPoint& p) {
  ts << "(" << WTF::TextStream::FormatNumberRespectingIntegers(p.X());
  ts << "," << WTF::TextStream::FormatNumberRespectingIntegers(p.Y());
  ts << ")";
  return ts;
}

}  // namespace blink


text:
package glassPaxos.network.messages;

import glassPaxos.network.NodeIdentifier;
import io.netty.buffer.ByteBuf;

public class BatchAcceptedMessage extends Message {

	private int round;
	private long start;
	private long end;

	protected BatchAcceptedMessage(){}

	public BatchAcceptedMessage(NodeIdentifier sender, int round, long start, long end) {
		super(MSG_TYPE.BACCEPTED, sender);
		this.round = round;
		this.start = start;
		this.end = end;
	}

	public long getStart(){
		return start;
	}

	public long getEnd(){
		return end;
	}

	public int getRound(){
		return round;
	}

	@Override
	public void serialize(ByteBuf buf){
		super.serialize(buf);
		buf.writeInt(round);
		buf.writeLong(start);
		buf.writeLong(end);
	}

	@Override
	public void deserialize(ByteBuf buf){
		super.deserialize(buf);
        round = buf.readInt();
        start = buf.readLong();
        end = buf.readLong();
	}

	@Override
	public String toString(){
		StringBuilder sb = new StringBuilder();
		sb.append("BatchAcceptedMessage <src ").append(super.getSender())
			.append(", round ").append(round).append(", start ").append(start)
			.append(", end ").append(end).append(">");

		return sb.toString();
	}
}


text:
Given /^an account exists with title "([^\"]*)"$/ do |title|
  account = Factory.create(:account, :title => title)
end


text:
@implementation UIImage (image)
+ (UIImage *)imageWithOriImageName:(NSString *)imageName {

    //加载图片
    UIImage *image = [UIImage imageNamed:imageName];
    return [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

}

@end


text:
.brush-chart .brush-area {
  fill: #EFF2F5; }

.brush-chart rect.brush-rect.selection {
  fill-opacity: 0.08;
  fill: url("#brush-area-gradient");
  stroke-linejoin: round; }

.brush-chart rect.brush-rect.handle {
  fill: #00d8d2;
  width: 0.2rem; }

.brush-chart .axis path {
  display: none; }


text:
package com.mongodb.internal.connection;

import com.mongodb.ReadConcern;

import static com.mongodb.assertions.Assertions.notNull;

/**
 * A SessionContext implementation that does nothing and reports that it has no session, but does track read concern.
 *
 *
This class is not part of the public API and may be removed or changed at any time

 */
public final class ReadConcernAwareNoOpSessionContext extends NoOpSessionContext {

    private final ReadConcern readConcern;

    public ReadConcernAwareNoOpSessionContext(final ReadConcern readConcern) {
        this.readConcern = notNull("readConcern", readConcern);
    }

    @Override
    public ReadConcern getReadConcern() {
        return readConcern;
    }
}


text:
package org.traccar.database;

import org.traccar.model.Device;
import org.traccar.model.Position;

public interface IdentityManager {

    Device getDeviceById(long id);

    Device getDeviceByUniqueId(String uniqueId) throws Exception;

    Position getLastPosition(long deviceId);

    boolean isLatestPosition(Position position);

}