text:
title:  Learning To Wait
date:  03/09/2022
---

**This is Easy Reading Edition of the Sabbath School. For the regular Adult version with Teacher comments and EGW notes please open the top lesson on the main screen**

### Read for This Week's Study
Romans 15:4, 5; Psalm 27:14; Psalm 37:7; Romans 5:3–5; Romans 5:6; Galatians 4:4; Daniel 9:24–27; 1 Samuel 26:12–25;

1 Samuel 16:1–13; 1 Samuel 23:17; 1 Samuel 24:20; 1 Kings 19:1–9; 1 Kings 18; Genesis 16:1–3; Numbers 20:10–12; Judges 14:1–3; Matthew 20:20, 21; Luke 9:52–56; Acts 9:1; Psalm 37:4; 2 Timothy 1:12; 1 Corinthians 10:13.

>
Memory Text

> "But the fruit the Holy Spirit produces is . . . being patient" (Galatians 5:22, NIrV).

SCIENTISTS did an experiment with four-year-old children and marshmallows, a sweet fluffy, white candy. The scientists gave each child one marshmallow. If the children waited until the scientists came back from an errand, then they would get an extra marshmallow. What happened? Some of the kids stuffed their marshmallows into their mouths as soon as the scientists left. Other children waited until the scientists came back.

The scientists studied the children until their teenage years. The children who waited to get the extra marshmallows became better students. They also had more success in life. Why? Because they knew they needed to be patient. They learned how to wait. No wonder the Lord tells us to learn to be patient!

This week, we'll look at one of the hardest tests of all in life: learning to be patient during difficult tests and hard times.


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

namespace Task_11_part_02
{
    /// <summary>
    /// Интерфейс файбрика.
    /// </summary>
    interface IFactory
    {
        float getPribil();
        string name();
        //public void addProduct();
    }
}

redpajama_set_name: RedPajamaGithub


text:
var chai = require('chai');
var common = require('../common.js');
var domstream = common.domstream;

describe('testing document search', function () {
  var assert = chai.assert;

  common.createTemplate(function (content) {
    var doc = domstream(content);

    describe('when searching for a missing element using', function(){

      describe('tagname',
            expectNoResult(doc.find().elem('missing')));

      describe('attribute name',
            expectNoResult(doc.find().attr('missing')));

      describe('attribute value',
            expectNoResult(doc.find().attr('rel', 'missing')));

      describe('attribute RegExp',
            expectNoResult(doc.find().attr('rel', /missing/)));

      describe('tagname followed by attribute value',
            expectNoResult(doc.find().elem('link').attr('data-match', '1')));

      describe('attribute followed by tagname value',
            expectNoResult(doc.find().attr('data-match', '1').elem('missing')));

      describe('multiply steps', expectNoResult(function () {
        var search = doc.find();

        // this will perform a real search for all <link> element
        search.elem('link');
        search.toArray();

        // this will setup search for all <link data-match="1" *>
        // note that such elements do not exist, but a <link *> element and <* data-match="1" *> do.
        search.attr('data-match', '1');

        return search;
      }));
    });

    function expectNoResult(search) {

      return function () {
        if (search instanceof Function) {
          search = search();
        }

        it('toValue returns false', function () {
          assert.isFalse(search.toValue());
        });

        it('toArray returns empty array', function () {
          assert.lengthOf(search.toArray(), 0);
        });
      };
    }

    describe('when searching with .only() using', function () {

      var links = [
        doc.tree.childrens[0].childrens[0].childrens[1],
        doc.tree.childrens[0].childrens[0].childrens[2]
      ];

      describe('tagname',
            expectOneResult(doc.find().only().elem('link'), links[0]));

      describe('attribute name',
            expectOneResult(doc.find().only().attr('rel'), links[0]));

      describe('attribute value',
            expectOneResult(doc.find().only().attr('rel', 'stylesheet'), links[0]));

      describe('attribute RegExp',
            expectOneResult(doc.find().only().attr('data-href', /^file_(2|3)\.css$/), links[1]));

      describe('tagname followed by attribute value',
            expectOneResult(doc.find().only().elem('link').attr('rel', 'stylesheet'), links[0]));

      describe('attribute followed by tagname value',
            expectOneResult(doc.find().only().attr('rel', 'stylesheet').elem('link'), links[0]));

      describe('multiply steps with only at start', function () {
        var search = doc.find();

        // this will perform a real search for the first <link> element
        search.only().elem('link').toValue();

        // since nodeList only contains one element, and futher search
        // will be performed on nodeList, the use is not allowed t
        // add more search criterias, since the will result in a wrong
        // search result
        var error = null;
        try {
          search.attr('data-href', 'file_2.css').toValue(); // throw
        } catch (e) {
          error = e;
        } finally {
          it('it should throw', function () {
            assert.instanceOf(error, Error);
          });
        }
      });

      describe('multiply steps with only at middle', expectOneResult(function () {
          var search = doc.find();

          // this will perform a real search for all <link> element
          search.elem('link').toValue();

          // find second link element
          search.only().attr('data-href', 'file_2.css'); // no throw

          return search;
      }, links[1]));

      describe('multiply steps with only at end', expectOneResult(function () {
          var search = doc.find();

          // this will perform a real search for all <link> element
          search.elem('link').toValue();

          // find second link element
          search.attr('data-href', 'file_2.css').only(); // no throw

          return search;
      }, links[1]));
    });

    function expectOneResult(search, result) {
      return function () {
        if (search instanceof Function) {
          search = search();
        }

        it('toValue returns an element', function () {
          assert.ok(search.toValue().elem === result);
        });

        it('toArray returns array with one item', function () {
          assert.lengthOf(search.toArray(), 1);
          assert.ok(search.toArray()[0].elem === result);
        });
      };
    }

    describe('when searching using', function () {
      var body = doc.tree.childrens[0].childrens[1];
      var items = body.childrens[1].childrens.concat(body.childrens.slice(2, 5));

      describe('tagname',
            expectResult(doc.find().elem('li'), items));

      describe('attribute name',
            expectResult(doc.find().attr('data-match'), items));

      describe('attribute value',
            expectResult(doc.find().attr('data-match', '1'), [ items[0], items[2], items[3] ]));

      describe('attribute RegExp',
            expectResult(doc.find().attr('data-match', /^(2|3)$/), [ items[1], items[4], items[5] ]));

      describe('tagname followed by attribute value',
            expectResult(doc.find().elem('li').attr('data-match', '1'), [ items[0], items[2], items[3] ]));

      describe('attribute followed by tagname value',
            expectResult(doc.find().attr('data-match', '1').elem('li'), [ items[0], items[2], items[3] ]));

      describe('multiply steps', expectResult(function () {
          var search = doc.find();

          // this will perform a real search for all <li> element
          search.elem('li');
          search.toArray();

          // this will setup search for all <li data-match="1" *>
          search.attr('data-match', '1');

          return search;
      }, [ items[0], items[2], items[3] ]));
    });

    function expectResult(search, results) {
      var length = results.length;

      return function () {
        if (search instanceof Function) {
          search = search();
        }

        it('toValue returns an element', function () {
          assert.lengthOf(search.toValue(), length);

          var cache = search.toValue();
          for (var i = 0, l = length; i < l; i++) {
            assert.ok(cache[i].elem === results[i]);
          }
        });

        it('toArray returns array with one item', function () {
          assert.lengthOf(search.toArray(), length);

          var cache = search.toArray();
          for (var i = 0, l = length; i < l; i++) {
            assert.ok(cache[i].elem === results[i]);
          }
        });
      };
    }

  });
});


text:
.class public interface abstract Lgov/nist/javax/sip/ServerTransactionExt;
.super Ljava/lang/Object;
.source "ServerTransactionExt.java"

# interfaces
.implements Lgov/nist/javax/sip/TransactionExt;
.implements Ljavax/sip/ServerTransaction;

# virtual methods
.method public abstract getCanceledInviteTransaction()Ljavax/sip/ServerTransaction;
.end method


text:
<?php
class CarouselExtension extends DataExtension {

	private static $db = array(
		'CarouselControls' => 'Boolean',
		'CarouselPager' => 'Boolean',
		'CarouselAuto' => 'Boolean',
		'CarouselSpeed' => 'Int',
		'CarouselPause' => 'Int',
		'CarouselTransition' => "Enum('fade, slide', 'slide')"
	);

	private static $defaults = array(
		"CarouselControls" => 1,
		"CarouselPager" => 1,
		"CarouselAuto" => 1,
		"CarouselSpeed" => 300,
		"CarouselPause" => 5000,
		"CarouselTransition" => 'slide'
	);

	private static $has_one = array(
	);

	private static $has_many = array(
		'Slides' => 'CarouselSlide'
	);

	 private static $casting = array(
		"Carousel" => 'HTMLText',
	);

	public static $IncludeJQuery = true;

	public function updateCMSFields(FieldList $fields) {
        $fields->addFieldToTab('Root.Carousel', new CheckboxField('CarouselControls', 'Show navigation'));
        $fields->addFieldToTab('Root.Carousel', new CheckboxField('CarouselPager', 'Show pager'));
        $fields->addFieldToTab('Root.Carousel', new CheckboxField('CarouselAuto', 'Auto Transition'));
        $fields->addFieldToTab('Root.Carousel', new NumericField('CarouselSpeed', 'Transition speed (ms)'));
        $fields->addFieldToTab('Root.Carousel', new NumericField('CarouselPause', 'Pause between transitions (ms)'));
        $fields->addFieldToTab('Root.Carousel', new DropdownField('CarouselTransition', 'Transition', $this->owner->dbObject('CarouselTransition')->enumValues()));
        $conf=GridFieldConfig_RecordEditor::create(10);
        $conf->addComponent(new GridFieldSortableRows('SlideSort'));
        $fields->addFieldToTab('Root.Carousel', new GridField('SlidesID', 'Carousel Slides', $this->owner->Slides(), $conf));

		return $fields;
	}

	function contentControllerInit($controller) {
		$jquery = $this->owner->config()->get('IncludeJQuery');
		if($jquery) Requirements::javascript("framework/thirdparty/jquery/jquery.min.js");
		else {
			// check for suitable version of Requirements
			if(method_exists('Requirements', 'set_force_js_to_bottom')) Requirements::set_force_js_to_bottom(true);
			else trigger_error('CarouselExtension: Need a newer version of Silverstripe (>= 3.1.3) to use own JQuery', E_USER_WARNING);
		}

		Requirements::javascript("carousel/thirdparty/flexslider/jquery.flexslider-min.js");
		Requirements::css("carousel/thirdparty/flexslider/flexslider.css");

		$vars = array(
			"controls" => $this->owner->CarouselControls?'true':'false',
			"pager" => $this->owner->CarouselPager?'true':'false',
			"auto" => $this->owner->CarouselAuto?'true':'false',
			'transition' => $this->owner->CarouselTransition,
			'speed' => $this->owner->CarouselSpeed,
			'pause' => $this->owner->CarouselPause
		);
		Requirements::javascriptTemplate("carousel/javascript/flexslider.template.js", $vars);
	}

	function getCarousel() {
		$Slides = $this->owner->Slides()->sort("SlideSort");
		$arrayData = new ArrayData(array('SortedSlides' => $Slides));
		return $arrayData->renderWith('Carousel');
	}
}


text:
class Array
  def compact
    select{|x| !x.nil? }
  end
end


text:
/*
! Canya!!!
! GCC rulez
! Este fichero ha sido pregenerado con GCC y se le han efectuado
! unos pocos cambios quirurgicos para aquello que no se podia hacer
! en C, a saber: enpilar los parametros (nada mas que el push)
! y restaurar la pila en la vuelta de la llamada a funcion
!
! Enlar/RGBA 2001
! Epopeia Scripting DemoSystem
!
*/
 void Call(void* Funcion, int* ParamVector, int ParamCount)
 {
    void (*Function)(void) = Funcion;
    int ParamTemp = ParamCount;

    ParamVector+=ParamCount;
    while(ParamTemp > 0)
    {
        ParamVector --;
        ParamTemp --;
        *ParamVector = 0;
        // push *ParamVector to the stack
    }
    Function();
    // Restore the stack
}


text:
package com.brandwatch.kafka.discovery;

public class BrokerParserException extends Exception {

    public BrokerParserException(String message) {
        super(message);
    }

    private static final long serialVersionUID = 1L;

}


text:
layout: base
title:  'Statistics of Polarity in UD_Cebuano-GJA'
udver: '2'
---

## Treebank Statistics: UD_Cebuano-GJA: Features: `Polarity`

This feature is universal.
It occurs with 1 different values: `Neg`.

32 tokens (2%) have a non-empty value of `Polarity`.
9 types (2%) occur at least once with a non-empty value of `Polarity`.
4 lemmas (1%) occur at least once with a non-empty value of `Polarity`.
The feature is used with 3 part-of-speech tags: <tt>PART</tt> (23; 2% instances), <tt>VERB</tt> (6; 0% instances), <tt>ADV</tt> (3; 0% instances).

### `PART`

23 <tt>PART</tt> tokens (14% of all `PART` tokens) have a non-empty value of `Polarity`.

`PART` tokens may have the following values of `Polarity`:

* `Neg` (23; 100% of non-empty `Polarity`): dili, wala, ayaw, di, Ambot
* `EMPTY` (138): -ng, man, nga, ka, ra, lang, ba, -g, pa, diay

### `VERB`

6 <tt>VERB</tt> tokens (3% of all `VERB` tokens) have a non-empty value of `Polarity`.

The most frequent other feature values with which `VERB` and `Polarity` co-occurred: <tt>Aspect</tt><tt>=EMPTY</tt> (6; 100%), <tt>Mood</tt><tt>=EMPTY</tt> (6; 100%), <tt>Voice</tt><tt>=EMPTY</tt> (6; 100%).

`VERB` tokens may have the following values of `Polarity`:

* `Neg` (6; 100% of non-empty `Polarity`): wala
* `EMPTY` (171): may, moadto, ganahan, gibuhat, gusto, tabangan, Gitawag, Kinahanglan, Liguon, Silhigan

### `ADV`

3 <tt>ADV</tt> tokens (4% of all `ADV` tokens) have a non-empty value of `Polarity`.

The most frequent other feature values with which `ADV` and `Polarity` co-occurred: <tt>Deixis</tt><tt>=EMPTY</tt> (3; 100%), <tt>PronType</tt><tt>=EMPTY</tt> (3; 100%).

`ADV` tokens may have the following values of `Polarity`:

* `Neg` (3; 100% of non-empty `Polarity`): Wala
* `EMPTY` (71): na, Ngano, karon, kaayo, Pila, Pilay, Tua, didto, labi, lang


text:
ACCEPTED

#### According to
Euro+Med Plantbase

#### Published in
Acta Phytotax. Geobot. 8:268. 1939

#### Original name
null

### Remarks
null


text:
package com.stc.pattysmorestuff.blocks.furnaces;

import com.stc.pattysmorestuff.init.ModFurnaces;
import com.stc.pattysmorestuff.tileentity.furnaces.TileEntityEmeraldFurnace;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.BlockHorizontal;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.SoundEvents;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.InventoryHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.StatList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.*;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import java.util.Random;

/**
 * Created by StuffTheChicken on 21/07/2017.
 */
public class BlockEmeraldFurnace extends BlockContainer {

    public static final PropertyDirection FACING = BlockHorizontal.FACING;
    private boolean isBurning;
    private static boolean keepInventory;

    public BlockEmeraldFurnace(String name, boolean isBurning) {
        super(Material.IRON);
        this.setUnlocalizedName(name);
        this.setRegistryName(name);
        this.setHardness(5.5F);
        this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
        this.isBurning = isBurning;
    }

    /**
     * Get the Item that this Block should drop when harvested.
     */
    public Item getItemDropped(IBlockState state, Random rand, int fortune)
    {
        return Item.getItemFromBlock(ModFurnaces.emerald_furnace);
    }

    /**
     * Called after the block is set in the Chunk data, but before the Tile Entity is set
     */
    public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state)
    {
        this.setDefaultFacing(worldIn, pos, state);
    }

    private void setDefaultFacing(World worldIn, BlockPos pos, IBlockState state)
    {
        if (!worldIn.isRemote)
        {
            IBlockState iblockstate = worldIn.getBlockState(pos.north());
            IBlockState iblockstate1 = worldIn.getBlockState(pos.south());
            IBlockState iblockstate2 = worldIn.getBlockState(pos.west());
            IBlockState iblockstate3 = worldIn.getBlockState(pos.east());
            EnumFacing enumfacing = (EnumFacing)state.getValue(FACING);

            if (enumfacing == EnumFacing.NORTH && iblockstate.isFullBlock() && !iblockstate1.isFullBlock())
            {
                enumfacing = EnumFacing.SOUTH;
            }
            else if (enumfacing == EnumFacing.SOUTH && iblockstate1.isFullBlock() && !iblockstate.isFullBlock())
            {
                enumfacing = EnumFacing.NORTH;
            }
            else if (enumfacing == EnumFacing.WEST && iblockstate2.isFullBlock() && !iblockstate3.isFullBlock())
            {
                enumfacing = EnumFacing.EAST;
            }
            else if (enumfacing == EnumFacing.EAST && iblockstate3.isFullBlock() && !iblockstate2.isFullBlock())
            {
                enumfacing = EnumFacing.WEST;
            }

            worldIn.setBlockState(pos, state.withProperty(FACING, enumfacing), 2);
        }
    }

    @SideOnly(Side.CLIENT)
    @SuppressWarnings("incomplete-switch")
    public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand)
    {
        if (this.isBurning)
        {
            EnumFacing enumfacing = (EnumFacing)stateIn.getValue(FACING);
            double d0 = (double)pos.getX() + 0.5D;
            double d1 = (double)pos.getY() + rand.nextDouble() * 6.0D / 16.0D;
            double d2 = (double)pos.getZ() + 0.5D;
            double d3 = 0.52D;
            double d4 = rand.nextDouble() * 0.6D - 0.3D;

            if (rand.nextDouble() < 0.1D)
            {
                worldIn.playSound((double)pos.getX() + 0.5D, (double)pos.getY(), (double)pos.getZ() + 0.5D, SoundEvents.BLOCK_FURNACE_FIRE_CRACKLE, SoundCategory.BLOCKS, 1.0F, 1.0F, false);
            }

            switch (enumfacing)
            {
                case WEST:
                    worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 - 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D, new int[0]);
                    worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 - 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D, new int[0]);
                    break;
                case EAST:
                    worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D, new int[0]);
                    worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 + 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D, new int[0]);
                    break;
                case NORTH:
                    worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + d4, d1, d2 - 0.52D, 0.0D, 0.0D, 0.0D, new int[0]);
                    worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 + d4, d1, d2 - 0.52D, 0.0D, 0.0D, 0.0D, new int[0]);
                    break;
                case SOUTH:
                    worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + d4, d1, d2 + 0.52D, 0.0D, 0.0D, 0.0D, new int[0]);
                    worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 + d4, d1, d2 + 0.52D, 0.0D, 0.0D, 0.0D, new int[0]);
            }
        }
    }

    /**
     * Called when the block is right clicked by a player.
     */
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
    {
        if (worldIn.isRemote)
        {
            return true;
        }
        else
        {
            TileEntity tileentity = worldIn.getTileEntity(pos);

            if (tileentity instanceof TileEntityEmeraldFurnace)
            {
                playerIn.displayGUIChest((TileEntityEmeraldFurnace)tileentity);
                playerIn.addStat(StatList.FURNACE_INTERACTION);
            }

            return true;
        }
    }

    public static void setState(boolean active, World worldIn, BlockPos pos)
    {
        IBlockState iblockstate = worldIn.getBlockState(pos);
        TileEntity tileentity = worldIn.getTileEntity(pos);
        keepInventory = true;

        if (active)
        {
            worldIn.setBlockState(pos, ModFurnaces.emerald_furnace_active.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3);
            worldIn.setBlockState(pos, ModFurnaces.emerald_furnace_active.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3);
        }
        else
        {
            worldIn.setBlockState(pos, ModFurnaces.emerald_furnace.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3);
            worldIn.setBlockState(pos, ModFurnaces.emerald_furnace.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3);
        }

        keepInventory = false;

        if (tileentity != null)
        {
            tileentity.validate();
            worldIn.setTileEntity(pos, tileentity);
        }
    }

    /**
     * Returns a new instance of a block's tile entity class. Called on placing the block.
     */
    public TileEntity createNewTileEntity(World worldIn, int meta)
    {
        return new TileEntityEmeraldFurnace();
    }

    /**
     * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the
     * IBlockstate
     */
    public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
    {
        return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
    }

    /**
     * Called by ItemBlocks after a block is set in the world, to allow post-place logic
     */
    public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
    {
        worldIn.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2);

        if (stack.hasDisplayName())
        {
            TileEntity tileentity = worldIn.getTileEntity(pos);

            if (tileentity instanceof TileEntityEmeraldFurnace)
            {
                ((TileEntityEmeraldFurnace)tileentity).setCustomInventoryName(stack.getDisplayName());
            }
        }
    }

    /**
     * Called serverside after this block is replaced with another in Chunk, but before the Tile Entity is updated
     */
    public void breakBlock(World worldIn, BlockPos pos, IBlockState state)
    {
        if (!keepInventory)
        {
            TileEntity tileentity = worldIn.getTileEntity(pos);

            if (tileentity instanceof TileEntityEmeraldFurnace)
            {
                InventoryHelper.dropInventoryItems(worldIn, pos, (TileEntityEmeraldFurnace)tileentity);
                worldIn.updateComparatorOutputLevel(pos, this);
            }
        }

        super.breakBlock(worldIn, pos, state);
    }

    public boolean hasComparatorInputOverride(IBlockState state)
    {
        return true;
    }

    public int getComparatorInputOverride(IBlockState blockState, World worldIn, BlockPos pos)
    {
        return Container.calcRedstone(worldIn.getTileEntity(pos));
    }

    public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
    {
        return new ItemStack(this);
    }

    /**
     * The type of render function called. MODEL for mixed tesr and static model, MODELBLOCK_ANIMATED for TESR-only,
     * LIQUID for vanilla liquids, INVISIBLE to skip all rendering
     */
    public EnumBlockRenderType getRenderType(IBlockState state)
    {
        return EnumBlockRenderType.MODEL;
    }

    /**
     * Convert the given metadata into a BlockState for this Block
     */
    public IBlockState getStateFromMeta(int meta)
    {
        EnumFacing enumfacing = EnumFacing.getFront(meta);

        if (enumfacing.getAxis() == EnumFacing.Axis.Y)
        {
            enumfacing = EnumFacing.NORTH;
        }

        return this.getDefaultState().withProperty(FACING, enumfacing);
    }

    /**
     * Convert the BlockState into the correct metadata value
     */
    public int getMetaFromState(IBlockState state)
    {
        return ((EnumFacing)state.getValue(FACING)).getIndex();
    }

    /**
     * Returns the blockstate with the given rotation from the passed blockstate. If inapplicable, returns the passed
     * blockstate.
     */
    public IBlockState withRotation(IBlockState state, Rotation rot)
    {
        return state.withProperty(FACING, rot.rotate((EnumFacing)state.getValue(FACING)));
    }

    /**
     * Returns the blockstate with the given mirror of the passed blockstate. If inapplicable, returns the passed
     * blockstate.
     */
    public IBlockState withMirror(IBlockState state, Mirror mirrorIn)
    {
        return state.withRotation(mirrorIn.toRotation((EnumFacing)state.getValue(FACING)));
    }

    protected BlockStateContainer createBlockState()
    {
        return new BlockStateContainer(this, new IProperty[] {FACING});
    }

    public Item createItemBlock() {
        return new ItemBlock(this).setRegistryName(getRegistryName());
    }

}


text:
"""Tests for safe_ops."""

from absl.testing import parameterized
import numpy as np
import tensorflow as tf

from tensorflow_graphics.util import asserts
from tensorflow_graphics.util import safe_ops
from tensorflow_graphics.util import test_case

def _pick_random_vector():
  """Creates a random vector with random shape."""
  tensor_size = np.random.randint(3)
  tensor_shape = np.random.randint(1, 10, size=(tensor_size)).tolist()
  return np.random.normal(size=tensor_shape + [4])

class SafeOpsTest(test_case.TestCase):

  @parameterized.parameters(tf.float16, tf.float32, tf.float64)
  def test_safe_unsigned_div_exception_not_raised(self, dtype):
    """Checks that unsigned division does not cause Inf values."""
    vector = tf.convert_to_tensor(value=_pick_random_vector(), dtype=dtype)
    zero_vector = tf.zeros_like(vector)

    self.assert_exception_is_not_raised(
        safe_ops.safe_unsigned_div,
        shapes=[],
        a=tf.norm(tensor=vector),
        b=tf.norm(tensor=zero_vector))

  @parameterized.parameters(tf.float16, tf.float32, tf.float64)
  def test_safe_unsigned_div_exception_raised(self, dtype):
    """Checks that unsigned division causes Inf values for zero eps."""
    vector = tf.convert_to_tensor(value=_pick_random_vector(), dtype=dtype)
    zero_vector = tf.zeros_like(vector)

    with self.assertRaises(tf.errors.InvalidArgumentError):
      self.evaluate(
          safe_ops.safe_unsigned_div(
              tf.norm(tensor=vector), tf.norm(tensor=zero_vector), eps=0.0))

  @parameterized.parameters(tf.float16, tf.float32, tf.float64)
  def test_safe_signed_div_exception_not_raised(self, dtype):
    """Checks that signed division does not cause Inf values."""
    vector = tf.convert_to_tensor(value=_pick_random_vector(), dtype=dtype)
    zero_vector = tf.zeros_like(vector)

    self.assert_exception_is_not_raised(
        safe_ops.safe_signed_div,
        shapes=[],
        a=tf.norm(tensor=vector),
        b=tf.sin(zero_vector))

  @parameterized.parameters(tf.float16, tf.float32, tf.float64)
  def test_safe_signed_div_exception_raised(self, dtype):
    """Checks that signed division causes Inf values for zero eps."""
    vector = tf.convert_to_tensor(value=_pick_random_vector(), dtype=dtype)
    zero_vector = tf.zeros_like(vector)

    with self.assertRaises(tf.errors.InvalidArgumentError):
      self.evaluate(
          safe_ops.safe_unsigned_div(
              tf.norm(tensor=vector), tf.sin(zero_vector), eps=0.0))

  @parameterized.parameters(tf.float32, tf.float64)
  def test_safe_shrink_exception_not_raised(self, dtype):
    """Checks whether safe shrinking makes tensor safe for tf.acos(x)."""
    tensor = tf.convert_to_tensor(value=_pick_random_vector(), dtype=dtype)
    tensor = tensor * tensor
    norm_tensor = tensor / tf.reduce_max(
        input_tensor=tensor, axis=-1, keepdims=True)
    eps = asserts.select_eps_for_addition(dtype)
    norm_tensor += eps

    safe_tensor = safe_ops.safe_shrink(norm_tensor, -1.0, 1.0)
    self.assert_exception_is_not_raised(tf.acos, shapes=[], x=safe_tensor)

  @parameterized.parameters(tf.float32, tf.float64)
  def test_safe_shrink_exception_raised(self, dtype):
    """Checks whether safe shrinking fails when eps is zero."""
    tensor = tf.convert_to_tensor(value=_pick_random_vector(), dtype=dtype)
    tensor = tensor * tensor
    norm_tensor = tensor / tf.reduce_max(
        input_tensor=tensor, axis=-1, keepdims=True)
    eps = asserts.select_eps_for_addition(dtype)
    norm_tensor += eps

    with self.assertRaises(tf.errors.InvalidArgumentError):
      self.evaluate(safe_ops.safe_shrink(norm_tensor, -1.0, 1.0, eps=0.0))

  def test_safe_sinpx_div_sinx(self):
    """Tests for edge cases and continuity for sin(px)/sin(x)."""
    angle_step = np.pi / 16.0

    with self.subTest(name="all_angles"):
      theta = tf.range(-2.0 * np.pi, 2.0 * np.pi + angle_step / 2.0, angle_step)
      factor = np.random.uniform(size=(1,))

      division = safe_ops.safe_sinpx_div_sinx(theta, factor)
      division_l = safe_ops.safe_sinpx_div_sinx(theta + 1e-10, factor)
      division_r = safe_ops.safe_sinpx_div_sinx(theta - 1e-10, factor)

      self.assertAllClose(division, division_l, rtol=1e-9)
      self.assertAllClose(division, division_r, rtol=1e-9)

    with self.subTest(name="theta_is_zero"):
      theta = 0.0
      factor = tf.range(0.0, 1.0, 0.001)

      division = safe_ops.safe_sinpx_div_sinx(theta, factor)
      division_l = safe_ops.safe_sinpx_div_sinx(theta + 1e-10, factor)
      division_r = safe_ops.safe_sinpx_div_sinx(theta - 1e-10, factor)

      self.assertAllClose(division, division_l, atol=1e-9)
      self.assertAllClose(division, division_r, atol=1e-9)
      # According to l'Hopital rule, limit should be factor
      self.assertAllClose(division, factor, atol=1e-9)

    with self.subTest(name="theta_is_pi"):
      theta = np.pi
      factor = tf.range(0.0, 1.001, 0.001)

      division = safe_ops.safe_sinpx_div_sinx(theta, factor)
      division_l = safe_ops.safe_sinpx_div_sinx(theta + 1e-10, factor)
      division_r = safe_ops.safe_sinpx_div_sinx(theta - 1e-10, factor)

      self.assertAllClose(division, division_l, atol=1e-9)
      self.assertAllClose(division, division_r, atol=1e-9)

  def test_safe_cospx_div_cosx(self):
    """Tests for edge cases and continuity for cos(px)/cos(x)."""
    angle_step = np.pi / 16.0

    with self.subTest(name="all_angles"):
      theta = tf.range(-2.0 * np.pi, 2.0 * np.pi + angle_step / 2.0, angle_step)
      factor = np.random.uniform(size=(1,))

      division = safe_ops.safe_cospx_div_cosx(theta, factor)
      division_l = safe_ops.safe_cospx_div_cosx(theta + 1e-10, factor)
      division_r = safe_ops.safe_cospx_div_cosx(theta - 1e-10, factor)

      self.assertAllClose(division, division_l, rtol=1e-9)
      self.assertAllClose(division, division_r, rtol=1e-9)

    with self.subTest(name="theta_is_pi_over_two"):
      theta = np.pi / 2.0
      factor = tf.constant(1.0)

      division = safe_ops.safe_cospx_div_cosx(theta, factor)
      division_l = safe_ops.safe_cospx_div_cosx(theta + 1e-10, factor)
      division_r = safe_ops.safe_cospx_div_cosx(theta - 1e-10, factor)

      self.assertAllClose(division, division_l, atol=1e-9)
      self.assertAllClose(division, division_r, atol=1e-9)
      # According to l'Hopital rule, limit should be 1.0
      self.assertAllClose(division, 1.0, atol=1e-9)

    with self.subTest(name="theta_is_three_pi_over_two"):
      theta = np.pi * 3.0 / 2.0
      factor = tf.range(0.0, 1.001, 0.001)

      division = safe_ops.safe_cospx_div_cosx(theta, factor)
      division_l = safe_ops.safe_cospx_div_cosx(theta + 1e-10, factor)
      division_r = safe_ops.safe_cospx_div_cosx(theta - 1e-10, factor)

      self.assertAllClose(division, division_l, atol=1e-9)
      self.assertAllClose(division, division_r, atol=1e-9)

if __name__ == "__main__":
  test_case.main()


text:
/* libc/sys/linux/sys/ioctl.h - ioctl prototype */

/* Written 2000 by Werner Almesberger */

#ifndef _SYS_IOCTL_H
#define _SYS_IOCTL_H

#include <bits/ioctls.h>

int ioctl(int fd,int request,...);

#endif


text:
![build and tests](https://github.com/seanrees/tripist/actions/workflows/build.yml/badge.svg)

# Tripist

This tool creates Todoist projects for upcoming trips in Tripit. It uses a configurable checklist (described below) to create tasks for each upcoming trip.

To be most useful, this program should be run once daily to create/update any tasks for upcoming trips. By default, the Tripist only creates tasks that are due within the next week. This is changeable with ```-task_cutoff_days```.

## Usage

### Flags
```
Usage of bin/tripist:
  -authorize_todoist
       	Perform Todoist Authorization. This is an exclusive flag.
  -authorize_tripit
       	Perform Tripit Authorization. This is an exclusive flag.
  -checklist_csv string
       	Travel checklist CSV file. (default "checklist.csv")
  -task_cutoff_days int
       	Create tasks upto this many days in advance of their due date. (default 7)
  -verify_todoist
       	Perform Todoist API validation. This is an exclusive flag.
```

### Checklist

For each trip, Tripist expands a trip checklist into Todoist tasks. The checklist is a CSV file with the following headers:
1. Action / Task to do (text)
2. Indentation level (1 to 4)
3. Due Date (humanised string, e.g; 1 day before start, 2 days after end)

A sample checklist looks like this:
```
# Action / Text to Display, Indentation Level, Days Before Trip
Pre-trip, 1, 1 hour before start
Charge Headphones, 2, 2 days before start
Checkin to flight, 2, 1 day before start
Hail taxi to Airport, 2, 3 hours before start
Packing List, 1, 1 day brefore start
Toiletries, 2, 1 day before start
Passport, 2, 1 day before start
Clothes for DAYS, 2, 1 day before start
Post-trip, 1, 1 day after end
Order groceries, 2, 1 day before end
```

This will produce a Todoist project like this:
```
. Pre-trip
`--- Charge Headphones (2 days before)
`--- Checkin to flight (1 day before)
`--- Hail taxi to Airport (3 hours before)
. Packing List
`--- Toiletries (1 day before)
`--- Passport (1 day before)
`--- Clothes for 2 days (1 day before)
. Post-trip
`--- Order groceries (1 day before you return)
```

Note, Tripist will expand the special keyword ```DAYS``` in a checklist with the number of days in the trip.

### API Keys
To use this, you'll need API keys. If I know you, just ask and I'll give
you the ones I'm using. If I don't know you, you'll need to create them with Tripit and Todoist independently. It's free and easy (at the time of this writing).

#### API Key Location
Store the API keys in ```tripist.json``` in Tripist's runtime working directory.

This looks like:
```
% cat tripist.json
{
    "TripitAPIKey": "",
    "TripitAPISecret": "",
    "TodoistClientID": "",
    "TodoistClientSecret": ""
}
```

Once you have the API keys, you need to authorize the application to read
your Tripit data and generate Todoist projects. To do this:
```
% go build github.com/seanrees/tripist

% ./tripist -authorize_tripit
1. Login to TripIt in your browser.
2. After login, browse to: <URL>
3. Grant access and copy the 'oauth_token' parameter displayed.

Enter oauth_token: <CODE>

% ./tripist -authorize_todoist
1. Browse to: <URL>
2. Grant access and copy the 'code' parameter displayed.

Enter verification code: <CODE>
```

Once configured and a checklist is in checklist.csv, just run it like so:
```
% go install github.com/seanrees/tripist
% bin/tripist
```


text:
<?php
namespace PhpSigep\Pdf\Chancela;

abstract class AbstractChancela
{
    /**
     * @var int
     */
    protected $x;
    /**
     * @var int
     */
    protected $y;
    /**
     * @var string
     */
    protected $nomeRemetente;
    /**
     * @var \PhpSigep\Model\AccessData
     */
    protected $accessData;

    /**
     * @param int $x
     * @param int $y
     * @param string $nomeRemetente
     * @param \PhpSigep\Model\AccessData $accessData
     */
    public function __construct($x, $y, $nomeRemetente, \PhpSigep\Model\AccessData $accessData)
    {
        $this->setLeftPos($x);
        $this->setTopPos($y);
        $this->setNomeRemetente($nomeRemetente);
        $this->setAccessData($accessData);
    }

    public function setLeftPos($x)
    {
        if (is_numeric($x) === false) {
            throw new \InvalidArgumentException('Parâmetro $x precisa ser do tipo numérico');
        }
        $this->x = $x;
    }

    public function setTopPos($y)
    {
        if (is_numeric($y) === false) {
            throw new \InvalidArgumentException('Parâmetro $x precisa ser do tipo numérico');
        }
        $this->y = $y;
    }

    public function setNomeRemetente($nomeRemetente)
    {
        if (is_string($nomeRemetente) === false) {
            throw new \InvalidArgumentException('Parâmetro $nomeRemetente precisa ser do tipo string');
        }
        $this->nomeRemetente = $nomeRemetente;
    }

    public function setAccessData(\PhpSigep\Model\AccessData $accessData)
    {
        $this->accessData = $accessData;
    }

    public abstract function draw(\PhpSigep\Pdf\ImprovedFPDF $pdf);
}


text:
<script src="{{ MEDIA_URL }}ckeditor/ckeditor.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	window.onload = function()
	{
            CKEDITOR.replace( 'id_content', {
                toolbar : [
                    ['Source','-','Save'],
                    ['Maximize', 'ShowBlocks'],
                    '/',
                    ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker'],
                    ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
                    '/',
                    ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
                    ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
                    ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
                    '/',
                    ['Styles', 'Format', 'FontSize'],
                    ['Link','Unlink','Anchor'],
                    ['Image','Table','HorizontalRule','SpecialChar'],
                ],
            });
	};
</script>


text:
///////////////////////////////////////////////////////////////////////////////
// AUTHOR:       Henry Pinkard, henry.pinkard@gmail.com
//
// COPYRIGHT:    University of California, San Francisco, 2015
//
// LICENSE:      This file is distributed under the BSD license.
//               License text is included with the source distribution.
//
//               This file is distributed in the hope that it will be useful,
//               but WITHOUT ANY WARRANTY; without even the implied warranty
//               of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//
//               IN NO EVENT SHALL THE COPYRIGHT OWNER OR
//               CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
//               INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
//

package org.micromanager.plugins.magellan.propsandcovariants;

import org.micromanager.plugins.magellan.acq.MultipleAcquisitionManager;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author Henry
 */
public class CovariantPairingsTableModel extends AbstractTableModel {

   CovariantPairingsManager manager_;

   public CovariantPairingsTableModel( ) {
       super();
      manager_ = CovariantPairingsManager.getInstance();
      manager_.registerCovariantPairingsTableModel(this);
   }

    @Override
   public String getColumnName(int index) {
      return index == 0 ? "Active" : "Independent Variable : Dependent Variable";
   }

   @Override
   public int getRowCount() {
      return manager_.getNumPairings();
   }

   @Override
   public int getColumnCount() {
      return 2;
   }

   @Override
   public Class getColumnClass(int column) {
      return column == 0 ? Boolean.class : String.class;
   }

   @Override
   public boolean isCellEditable(int rowIndex, int colIndex) {
      return colIndex == 0;
   }

   @Override
   public Object getValueAt(int rowIndex, int columnIndex) {
      if (rowIndex == -1) {
         return null;
      } else if (columnIndex == 0) {
         return manager_.isPairActiveForCurrentAcq(rowIndex);
      }  else {
         return manager_.getPair(rowIndex);
      }
   }

   @Override
   public void setValueAt(Object value, int row, int col) {
      if (col == 0) {
         manager_.enablePairingForCurrentAcq(row, (Boolean) value);
      }
   }

   public boolean isAnyPairingActive() {
      for (int i = 0; i < manager_.getNumPairings(); i++) {
         if (manager_.isPairActiveForCurrentAcq(i) ) {
            return true;
         }
      }
      return false;
   }
}


text:
module FFI
  module HTTP
    module Parser
      # ffi-http-parser version
      VERSION = "0.3.0"
    end
  end
end


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

<rootTag>
  <Award>
    <AwardTitle>EAPSI: Prediction of the Physical Properties of Lead-Free Solder Alloys Using Molecular Simulation</AwardTitle>
    <AwardEffectiveDate>06/01/2008</AwardEffectiveDate>
    <AwardExpirationDate>05/31/2009</AwardExpirationDate>
    <AwardAmount>5637</AwardAmount>
    <AwardInstrument>
      <Value>Fellowship</Value>
    </AwardInstrument>
    <Organization>
      01090000
      <Directorate>
        <LongName>Office Of The Director</LongName>
      </Directorate>
      <Division>
        <LongName>Office Of Internatl Science &Engineering</LongName>
      </Division>
    </Organization>
    <ProgramOfficer>
      <SignBlockName>Anne L. Emig</SignBlockName>
    </ProgramOfficer>
    <AbstractNarration>2008 EAPSI Fellowship<br/>This award supports a U.S. graduate student to conduct an individual research project at one of seven locations in East Asia and the Pacific region (Australia, China, Japan, Korea, New Zealand, Singapore, Taiwan). The research project will provide the student with a first-hand mentored research experience, an introduction to science and science policy infrastructure, and an orientation to the culture and language of the location. The primary goals of the East Asia Summer Institute program are to expose students to science and engineering in the context of a research laboratory, and to initiate early-career professional relationships that will foster research collaborations with foreign counterparts in the future.</AbstractNarration>
    <MinAmdLetterDate>05/19/2008</MinAmdLetterDate>
    <MaxAmdLetterDate>05/19/2008</MaxAmdLetterDate>
    <ARRAAmount/>
    <AwardID>0813012</AwardID>
    <Investigator>
      <FirstName>Michael</FirstName>
      <LastName>Sellers</LastName>
      <EmailAddress/>
      <StartDate>05/19/2008</StartDate>
      <EndDate/>
      <RoleCode>Principal Investigator</RoleCode>
    </Investigator>
    <Institution>
      <Name>Sellers Michael S</Name>
      <CityName>Buffalo</CityName>
      <ZipCode>142609900</ZipCode>
      <PhoneNumber/>
      <StreetAddress/>
      <CountryName>United States</CountryName>
      <StateName>New York</StateName>
      <StateCode>NY</StateCode>
    </Institution>
    <FoaInformation>
      0000099
      <Name>Other Applications NEC</Name>
    </FoaInformation>
  </Award>
</rootTag>


text:
@interface ViewController ()

@property (nonatomic,strong) dispatch_queue_t mySERIALQueue;
@property (nonatomic,strong) dispatch_queue_t myConcurrentQueue;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.mySERIALQueue = dispatch_queue_create("com.my.zhouhe", DISPATCH_QUEUE_SERIAL);

    dispatch_async(_mySERIALQueue, ^{
        NSLog(@"1");
    });

    dispatch_async(_mySERIALQueue, ^{
        NSLog(@"2");
    });

    dispatch_async(_mySERIALQueue, ^{
        NSLog(@"3");
    });

    self.myConcurrentQueue = dispatch_queue_create("com.my.conrurrent", DISPATCH_QUEUE_CONCURRENT);

    dispatch_async(_myConcurrentQueue, ^{
        NSLog(@"并发1");
    });

    dispatch_async(_myConcurrentQueue, ^{
        NSLog(@"并发2");
    });

    dispatch_async(_myConcurrentQueue, ^{
        NSLog(@"并发3");
    });

    dispatch_queue_t queueSerial = dispatch_queue_create("com.muying.zhouhe", DISPATCH_QUEUE_SERIAL);
    dispatch_queue_t global = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0);

    //设置两个队列的执行顺序
    dispatch_set_target_queue(global,queueSerial );

    dispatch_async(queueSerial, ^{
        NSLog(@"hello");
    });

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSLog(@"word");
    });

    //延迟
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        NSLog(@"asdf");
    });

    NSDate *data = [[NSDate alloc]initWithTimeIntervalSinceNow:10];

    dispatch_after(getDispatchTimeByData(data), dispatch_get_main_queue(), ^{
        NSLog(@"happen sth");
    });

    dispatch_group_t group = dispatch_group_create();

    dispatch_queue_t queueGroup  = dispatch_queue_create("com.group.zhou", DISPATCH_QUEUE_CONCURRENT);

    dispatch_group_async(group, queueGroup, ^{
        NSLog(@"A");
    });

    dispatch_group_async(group, queueGroup, ^{
        NSLog(@"B");
    });

    dispatch_group_async(group, queueGroup, ^{
        NSLog(@"C");
    });

    dispatch_group_notify(group, queueGroup, ^{
        NSLog(@"任务组结束");
    });

    dispatch_queue_t barrier = dispatch_queue_create("com.barrier.zhouhe", DISPATCH_QUEUE_CONCURRENT);

    dispatch_async(barrier, ^{
        NSLog(@"1");
    });

    dispatch_async(barrier, ^{
        NSLog(@"2");
    });

    dispatch_barrier_async(barrier, ^{
        NSLog(@"w");
    });

    dispatch_async(barrier, ^{
        NSLog(@"3");
    });

}

dispatch_time_t getDispatchTimeByData(NSDate *date) {
    NSTimeInterval interval;
    double second, subsecond;
    struct timespec time;
    dispatch_time_t milestone;
    interval = [date timeIntervalSince1970];
    subsecond = modf(interval, &second);
    time.tv_sec = second;
    time.tv_nsec = subsecond * NSEC_PER_SEC;
    milestone = dispatch_walltime(&time, 0);
    return milestone;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


text:
author: Francis Hwang
title: Pre-Party Friday Night
---

Friday evening [Pivotal Labs][pivotal] will be hosting a party, pre-GORUCO,
for attendees and friends in the community. Stop by to mingle with your fellow
Rubyists, grab some snacks and enjoy some drinks... alcoholic and non.

Please feel free to pass around this invite to friends in the Ruby community.

### Details

* Friday, June 7th, 7pm - 9pm
* Pivotal Labs
* 841 Broadway, 8th Floor

[pivotal]:    http://pivotallabs.com


text:
# Change Log
All notable changes to this project will be documented in this file.
Updates should follow the [Keep a CHANGELOG](https://keepachangelog.com/) principles.

**Upgrading from 1.x?** See <https://commonmark.thephpleague.com/2.0/upgrading/> for additional information.

## [Unreleased][unreleased]

## [2.3.7] - 2022-11-03

### Fixed

- Fixed `TaskListItemMarkerRenderer` not including HTML attributes set on the node by other extensions (#947)

## [2.3.6] - 2022-10-30

### Fixed

- Fixed unquoted attribute parsing when closing curly brace is followed by certain characters (like a `.`) (#943)

## [2.3.5] - 2022-07-29

### Fixed

- Fixed error using `InlineParserEngine` when no inline parsers are registered in the `Environment` (#908)

## [2.3.4] - 2022-07-17

### Changed

- Made a number of small tweaks to the embed extension's parsing behavior to fix #898:
    - Changed `EmbedStartParser` to always capture embed-like lines in container blocks, regardless of parent block type
    - Changed `EmbedProcessor` to also remove `Embed` blocks that aren't direct children of the `Document`
    - Increased the priority of `EmbedProcessor` to `1010`

### Fixed

- Fixed `EmbedExtension` not parsing embeds following a list block (#898)

## [2.3.3] - 2022-06-07

### Fixed

- Fixed `DomainFilteringAdapter` not reindexing the embed list (#884, #885)

## [2.3.2] - 2022-06-03

### Fixed

- Fixed FootnoteExtension stripping extra characters from tab-indented footnotes (#881)

## [2.2.5] - 2022-06-03

### Fixed

- Fixed FootnoteExtension stripping extra characters from tab-indented footnotes (#881)

## [2.3.1] - 2022-05-14

### Fixed

- Fixed AutolinkExtension not ignoring trailing strikethrough syntax (#867)

## [2.2.4] - 2022-05-14

### Fixed

- Fixed AutolinkExtension not ignoring trailing strikethrough syntax (#867)

## [2.3.0] - 2022-04-07

### Added

- Added new `EmbedExtension` (#805)
- Added `DocumentRendererInterface` as a replacement for the now-deprecated `MarkdownRendererInterface`

### Deprecated

- Deprecated `MarkdownRendererInterface`; use `DocumentRendererInterface` instead

## [2.2.3] - 2022-02-26

### Fixed

- Fixed front matter parsing with Windows line endings (#821)

## [2.1.3] - 2022-02-26

### Fixed

- Fixed front matter parsing with Windows line endings (#821)

## [2.0.4] - 2022-02-26

### Fixed

- Fixed front matter parsing with Windows line endings (#821)

## [2.2.2] - 2022-02-13

### Fixed

- Fixed double-escaping of image alt text (#806, #810)
- Fixed Psalm typehints for event class names

## [2.2.1] - 2022-01-25

### Fixed

 - Fixed `symfony/deprecation-contracts` constraint

### Removed

 - Removed deprecation trigger from `MarkdownConverterInterface` to reduce noise

## [2.2.0] - 2022-01-22

### Added

 - Added new `ConverterInterface`
 - Added new `MarkdownToXmlConverter` class
 - Added new `HtmlDecorator` class which can wrap existing renderers with additional HTML tags
 - Added new `table/wrap` config to apply an optional wrapping/container element around a table (#780)

### Changed

 - `HtmlElement` contents can now consist of any `Stringable`, not just `HtmlElement` and `string`

### Deprecated

 - Deprecated `MarkdownConverterInterface` and its `convertToHtml()` method; use `ConverterInterface` and `convert()` instead

## [2.1.2] - 2022-02-13

### Fixed

- Fixed double-escaping of image alt text (#806, #810)
- Fixed Psalm typehints for event class names

## [2.1.1] - 2022-01-02

### Added

 - Added missing return type to `Environment::dispatch()` to fix deprecation warning (#778)

## [2.1.0] - 2021-12-05

### Added

- Added support for ext-yaml in FrontMatterExtension (#715)
- Added support for symfony/yaml v6.0 in FrontMatterExtension (#739)
- Added new `heading_permalink/aria_hidden` config option (#741)

### Fixed

 - Fixed PHP 8.1 deprecation warning (#759, #762)

## [2.0.3] - 2022-02-13

### Fixed

- Fixed double-escaping of image alt text (#806, #810)
- Fixed Psalm typehints for event class names

## [2.0.2] - 2021-08-14

### Changed

- Bumped minimum version of league/config to support PHP 8.1

### Fixed

- Fixed ability to register block parsers that identify lines starting with letters (#706)

## [2.0.1] - 2021-07-31

### Fixed

- Fixed nested autolinks (#689)
- Fixed description lists being parsed incorrectly (#692)
- Fixed Table of Contents not respecting Heading Permalink prefixes (#690)

## [2.0.0] - 2021-07-24

No changes were introduced since the previous RC2 release.
See all entries below for a list of changes between 1.x and 2.0.

## [2.0.0-rc2] - 2021-07-17

### Fixed

- Fixed Mentions inside of links creating nested links against the spec's rules (#688)

## [2.0.0-rc1] - 2021-07-10

No changes were introduced since the previous release.

## [2.0.0-beta3] - 2021-07-03

### Changed

 - Any leading UTF-8 BOM will be stripped from the input
 - The `getEnvironment()` method of `CommonMarkConverter` and `GithubFlavoredMarkdownConverter` will always return the concrete, configurable `Environment` for upgrading convenience
 - Optimized AST iteration
 - Lots of small micro-optimizations

## [2.0.0-beta2] - 2021-06-27

### Added

- Added new `Node::iterator()` method and `NodeIterator` class for faster AST iteration (#683, #684)

### Changed

- Made compatible with CommonMark spec 0.30.0
- Optimized link label parsing
- Optimized AST iteration for a 50% performance boost in some event listeners (#683, #684)

### Fixed

- Fixed processing instructions with EOLs
- Fixed case-insensitive matching for HTML tag types
- Fixed type 7 HTML blocks incorrectly interrupting lazy paragraphs
- Fixed newlines in reference labels not collapsing into spaces
- Fixed link label normalization with escaped newlines
- Fixed unnecessary AST iteration when no default attributes are configured

## [2.0.0-beta1] - 2021-06-20

### Added

 - **Added three new extensions:**
   - `FrontMatterExtension` ([see documentation](https://commonmark.thephpleague.com/extensions/front-matter/))
   - `DescriptionListExtension` ([see documentation](https://commonmark.thephpleague.com/extensions/description-lists/))
   - `DefaultAttributesExtension` ([see documentation](https://commonmark.thephpleague.com/extensions/default-attributes/))
 - **Added new `XmlRenderer` to simplify AST debugging** ([see documentation](https://commonmark.thephpleague.com/xml/)) (#431)
 - **Added the ability to configure disallowed raw HTML tags** (#507)
 - **Added the ability for Mentions to use multiple characters for their symbol** (#514, #550)
 - **Added the ability to delegate event dispatching to PSR-14 compliant event dispatcher libraries**
 - **Added new configuration options:**
   - Added `heading_permalink/min_heading_level` and `heading_permalink/max_heading_level` options to control which headings get permalinks (#519)
   - Added `heading_permalink/fragment_prefix` to allow customizing the URL fragment prefix (#602)
   - Added `footnote/backref_symbol` option for customizing backreference link appearance (#522)
   - Added `slug_normalizer/max_length` option to control the maximum length of generated URL slugs
   - Added `slug_normalizer/unique` option to control whether unique slugs should be generated per-document or per-environment
 - **Added purity markers throughout the codebase** (verified with Psalm)
 - Added `Query` class to simplify Node traversal when looking to take action on certain Nodes
 - Added new `HtmlFilter` and `StringContainerHelper` utility classes
 - Added new `AbstractBlockContinueParser` class to simplify the creation of custom block parsers
 - Added several new classes and interfaces:
   - `BlockContinue`
   - `BlockContinueParserInterface`
   - `BlockContinueParserWithInlinesInterface`
   - `BlockStart`
   - `BlockStartParserInterface`
   - `ChildNodeRendererInterface`
   - `ConfigurableExtensionInterface`
   - `CursorState`
   - `DashParser` (extracted from `PunctuationParser`)
   - `DelimiterParser`
   - `DocumentBlockParser`
   - `DocumentPreRenderEvent`
   - `DocumentRenderedEvent`
   - `EllipsesParser` (extracted from `PunctuationParser`)
   - `ExpressionInterface`
   - `FallbackNodeXmlRenderer`
   - `InlineParserEngineInterface`
   - `InlineParserMatch`
   - `MarkdownParserState`
   - `MarkdownParserStateInterface`
   - `MarkdownRendererInterface`
   - `Query`
   - `RawMarkupContainerInterface`
   - `ReferenceableInterface`
   - `RenderedContent`
   - `RenderedContentInterface`
   - `ReplaceUnpairedQuotesListener`
   - `SpecReader`
   - `TableOfContentsRenderer`
   - `UniqueSlugNormalizer`
   - `UniqueSlugNormalizerInterface`
   - `XmlRenderer`
   - `XmlNodeRendererInterface`
 - Added several new methods:
   - `Cursor::getCurrentCharacter()`
   - `Environment::createDefaultConfiguration()`
   - `Environment::setEventDispatcher()`
   - `EnvironmentInterface::getExtensions()`
   - `EnvironmentInterface::getInlineParsers()`
   - `EnvironmentInterface::getSlugNormalizer()`
   - `FencedCode::setInfo()`
   - `Heading::setLevel()`
   - `HtmlRenderer::renderDocument()`
   - `InlineParserContext::getFullMatch()`
   - `InlineParserContext::getFullMatchLength()`
   - `InlineParserContext::getMatches()`
   - `InlineParserContext::getSubMatches()`
   - `LinkParserHelper::parsePartialLinkLabel()`
   - `LinkParserHelper::parsePartialLinkTitle()`
   - `Node::assertInstanceOf()`
   - `RegexHelper::isLetter()`
   - `StringContainerInterface::setLiteral()`
   - `TableCell::getType()`
   - `TableCell::setType()`
   - `TableCell::getAlign()`
   - `TableCell::setAlign()`

### Changed

 - **Changed the converter return type**
   - `CommonMarkConverter::convertToHtml()` now returns an instance of `RenderedContentInterface`. This can be cast to a string for backward compatibility with 1.x.
 - **Table of Contents items are no longer wrapped with `<p>` tags** (#613)
 - **Heading Permalinks now link to element IDs instead of using `name` attributes** (#602)
 - **Heading Permalink IDs and URL fragments now have a `content` prefix by default** (#602)
 - **Changes to configuration options:**
     - `enable_em` has been renamed to `commonmark/enable_em`
     - `enable_strong` has been renamed to `commonmark/enable_strong`
     - `use_asterisk` has been renamed to `commonmark/use_asterisk`
     - `use_underscore` has been renamed to `commonmark/use_underscore`
     - `unordered_list_markers` has been renamed to `commonmark/unordered_list_markers`
     - `mentions/*/symbol` has been renamed to `mentions/*/prefix`
     - `mentions/*/regex` has been renamed to `mentions/*/pattern` and requires partial regular expressions (without delimiters or flags)
     - `max_nesting_level` now defaults to `PHP_INT_MAX` and no longer supports floats
     - `heading_permalink/slug_normalizer` has been renamed to `slug_normalizer/instance`
 - **Event dispatching is now fully PSR-14 compliant**
 - **Moved and renamed several classes** - [see the full list here](https://commonmark.thephpleague.com/2.0/upgrading/#classesnamespaces-renamed)
 - The `HeadingPermalinkExtension` and `FootnoteExtension` were modified to ensure they never produce a slug which conflicts with slugs created by the other extension
 - `SlugNormalizer::normalizer()` now supports optional prefixes and max length options passed in via the `$context` argument
 - The `AbstractBlock::$data` and `AbstractInline::$data` arrays were replaced with a `Data` array-like object on the base `Node` class
 - **Implemented a new approach to block parsing.** This was a massive change, so here are the highlights:
   - Functionality previously found in block parsers and node elements has moved to block parser factories and block parsers, respectively ([more details](https://commonmark.thephpleague.com/2.0/upgrading/#new-block-parsing-approach))
   - `ConfigurableEnvironmentInterface::addBlockParser()` is now `EnvironmentBuilderInterface::addBlockParserFactory()`
   - `ReferenceParser` was re-implemented and works completely different than before
   - The paragraph parser no longer needs to be added manually to the environment
 - **Implemented a new approach to inline parsing** where parsers can now specify longer strings or regular expressions they want to parse (instead of just single characters):
   - `InlineParserInterface::getCharacters()` is now `getMatchDefinition()` and returns an instance of `InlineParserMatch`
   - `InlineParserContext::__construct()` now requires the contents to be provided as a `Cursor` instead of a `string`
 - **Implemented delimiter parsing as a special type of inline parser** (via the new `DelimiterParser` class)
 - **Changed block and inline rendering to use common methods and interfaces**
   - `BlockRendererInterface` and `InlineRendererInterface` were replaced by `NodeRendererInterface` with slightly different parameters. All core renderers now implement this interface.
   - `ConfigurableEnvironmentInterface::addBlockRenderer()` and `addInlineRenderer()` were combined into `EnvironmentBuilderInterface::addRenderer()`
   - `EnvironmentInterface::getBlockRenderersForClass()` and `getInlineRenderersForClass()` are now just `getRenderersForClass()`
 - **Completely refactored the Configuration implementation**
   - All configuration-specific classes have been moved into a new `league/config` package with a new namespace
   - `Configuration` objects must now be configured with a schema and all options must match that schema - arbitrary keys are no longer permitted
   - `Configuration::__construct()` no longer accepts the default configuration values - use `Configuration::merge()` instead
   - `ConfigurationInterface` now only contains a `get(string $key)`; this method no longer allows arbitrary default values to be returned if the option is missing
   - `ConfigurableEnvironmentInterface` was renamed to `EnvironmentBuilderInterface`
   - `ExtensionInterface::register()` now requires an `EnvironmentBuilderInterface` param instead of `ConfigurableEnvironmentInterface`
 - **Added missing return types to virtually every class and interface method**
 - Re-implemented the GFM Autolink extension using the new inline parser approach instead of document processors
   - `EmailAutolinkProcessor` is now `EmailAutolinkParser`
   - `UrlAutolinkProcessor` is now `UrlAutolinkParser`
 - `HtmlElement` can now properly handle array (i.e. `class`) and boolean (i.e. `checked`) attribute values
 - `HtmlElement` automatically flattens any attributes with array values into space-separated strings, removing duplicate entries
 - Combined separate classes/interfaces into one:
   - `DisallowedRawHtmlRenderer` replaces `DisallowedRawHtmlBlockRenderer` and `DisallowedRawHtmlInlineRenderer`
   - `NodeRendererInterface` replaces `BlockRendererInterface` and `InlineRendererInterface`
 - Renamed the following methods:
   - `Environment` and `ConfigurableEnvironmentInterface`:
     - `addBlockParser()` is now `addBlockStartParser()`
   - `ReferenceMap` and `ReferenceMapInterface`:
     - `addReference()` is now `add()`
     - `getReference()` is now `get()`
     - `listReferences()` is now `getIterator()`
   - Various node (block/inline) classes:
     - `getContent()` is now `getLiteral()`
     - `setContent()` is now `setLiteral()`
 - Moved and renamed the following constants:
   - `EnvironmentInterface::HTML_INPUT_ALLOW` is now `HtmlFilter::ALLOW`
   - `EnvironmentInterface::HTML_INPUT_ESCAPE` is now `HtmlFilter::ESCAPE`
   - `EnvironmentInterface::HTML_INPUT_STRIP` is now `HtmlFilter::STRIP`
   - `TableCell::TYPE_HEAD` is now `TableCell::TYPE_HEADER`
   - `TableCell::TYPE_BODY` is now `TableCell::TYPE_DATA`
 - Changed the visibility of the following properties:
   - `AttributesInline::$attributes` is now `private`
   - `AttributesInline::$block` is now `private`
   - `TableCell::$align` is now `private`
   - `TableCell::$type` is now `private`
   - `TableSection::$type` is now `private`
 - Several methods which previously returned `$this` now return `void`
   - `Delimiter::setPrevious()`
   - `Node::replaceChildren()`
   - `Context::setTip()`
   - `Context::setContainer()`
   - `Context::setBlocksParsed()`
   - `AbstractStringContainer::setContent()`
   - `AbstractWebResource::setUrl()`
 - Several classes are now marked `final`:
   - `ArrayCollection`
   - `Emphasis`
   - `FencedCode`
   - `Heading`
   - `HtmlBlock`
   - `HtmlElement`
   - `HtmlInline`
   - `IndentedCode`
   - `Newline`
   - `Strikethrough`
   - `Strong`
   - `Text`
 - `Heading` nodes no longer directly contain a copy of their inner text
 - `StringContainerInterface` can now be used for inlines, not just blocks
 - `ArrayCollection` only supports integer keys
 - `HtmlElement` now implements `Stringable`
 - `Cursor::saveState()` and `Cursor::restoreState()` now use `CursorState` objects instead of arrays
 - `NodeWalker::next()` now enters, traverses any children, and leaves all elements which may have children (basically all blocks plus any inlines with children). Previously, it only did this for elements explicitly marked as "containers".
 - `InvalidOptionException` was removed
 - Anything with a `getReference(): ReferenceInterface` method now implements `ReferencableInterface`
 - The `SmartPunct` extension now replaces all unpaired `Quote` elements with `Text` elements towards the end of parsing, making the `QuoteRenderer` unnecessary
 - Several changes made to the Footnote extension:
   - Footnote identifiers can no longer contain spaces
   - Anonymous footnotes can now span subsequent lines
   - Footnotes can now contain multiple lines of content, including sub-blocks, by indenting them
   - Footnote event listeners now have numbered priorities (but still execute in the same order)
   - Footnotes must now be separated from previous content by a blank line
 - The line numbers (keys) returned via `MarkdownInput::getLines()` now start at 1 instead of 0
 - `DelimiterProcessorCollectionInterface` now extends `Countable`
 - `RegexHelper::PARTIAL_` constants must always be used in case-insensitive contexts
 - `HeadingPermalinkProcessor` no longer accepts text normalizers via the constructor - these must be provided via configuration instead
 - Blocks which can't contain inlines will no longer be asked to render inlines
 - `AnonymousFootnoteRefParser` and `HeadingPermalinkProcessor` now implement `EnvironmentAwareInterface` instead of `ConfigurationAwareInterface`
 - The second argument to `TextNormalizerInterface::normalize()` must now be an array
 - The `title` attribute for `Link` and `Image` nodes is now stored using a dedicated property instead of stashing it in `$data`
 - `ListData::$delimiter` now returns either `ListBlock::DELIM_PERIOD` or `ListBlock::DELIM_PAREN` instead of the literal delimiter

### Fixed

 - **Fixed parsing of footnotes without content**
 - **Fixed rendering of orphaned footnotes and footnote refs**
 - **Fixed some URL autolinks breaking too early** (#492)
 - Fixed `AbstractStringContainer` not actually being `abstract`

### Removed

 - **Removed support for PHP 7.1, 7.2, and 7.3** (#625, #671)
 - **Removed all previously-deprecated functionality:**
   - Removed the ability to pass custom `Environment` instances into the `CommonMarkConverter` and `GithubFlavoredMarkdownConverter` constructors
   - Removed the `Converter` class and `ConverterInterface`
   - Removed the `bin/commonmark` script
   - Removed the `Html5Entities` utility class
   - Removed the `InlineMentionParser` (use `MentionParser` instead)
   - Removed `DefaultSlugGenerator` and `SlugGeneratorInterface` from the `Extension/HeadingPermalink/Slug` sub-namespace (use the new ones under `./SlugGenerator` instead)
   - Removed the following `ArrayCollection` methods:
     - `add()`
     - `set()`
     - `get()`
     - `remove()`
     - `isEmpty()`
     - `contains()`
     - `indexOf()`
     - `containsKey()`
     - `replaceWith()`
     - `removeGaps()`
   - Removed the `ConfigurableEnvironmentInterface::setConfig()` method
   - Removed the `ListBlock::TYPE_UNORDERED` constant
   - Removed the `CommonMarkConverter::VERSION` constant
   - Removed the `HeadingPermalinkRenderer::DEFAULT_INNER_CONTENTS` constant
   - Removed the `heading_permalink/inner_contents` configuration option
 - **Removed now-unused classes:**
   - `AbstractStringContainerBlock`
   - `BlockRendererInterface`
   - `Context`
   - `ContextInterface`
   - `Converter`
   - `ConverterInterface`
   - `InlineRendererInterface`
   - `PunctuationParser` (was split into two classes: `DashParser` and `EllipsesParser`)
   - `QuoteRenderer`
   - `UnmatchedBlockCloser`
 - Removed the following methods, properties, and constants:
   - `AbstractBlock::$open`
   - `AbstractBlock::$lastLineBlank`
   - `AbstractBlock::isContainer()`
   - `AbstractBlock::canContain()`
   - `AbstractBlock::isCode()`
   - `AbstractBlock::matchesNextLine()`
   - `AbstractBlock::endsWithBlankLine()`
   - `AbstractBlock::setLastLineBlank()`
   - `AbstractBlock::shouldLastLineBeBlank()`
   - `AbstractBlock::isOpen()`
   - `AbstractBlock::finalize()`
   - `AbstractBlock::getData()`
   - `AbstractInline::getData()`
   - `ConfigurableEnvironmentInterface::addBlockParser()`
   - `ConfigurableEnvironmentInterface::mergeConfig()`
   - `Delimiter::setCanClose()`
   - `EnvironmentInterface::getConfig()`
   - `EnvironmentInterface::getInlineParsersForCharacter()`
   - `EnvironmentInterface::getInlineParserCharacterRegex()`
   - `HtmlRenderer::renderBlock()`
   - `HtmlRenderer::renderBlocks()`
   - `HtmlRenderer::renderInline()`
   - `HtmlRenderer::renderInlines()`
   - `Node::isContainer()`
   - `RegexHelper::matchAll()` (use the new `matchFirst()` method instead)
   - `RegexHelper::REGEX_WHITESPACE`
 - Removed the second `$contents` argument from the `Heading` constructor

### Deprecated

**The following things have been deprecated and will not be supported in v3.0:**

 - `Environment::mergeConfig()` (set configuration before instantiation instead)
 - `Environment::createCommonMarkEnvironment()` and `Environment::createGFMEnvironment()`
    - Alternative 1: Use `CommonMarkConverter` or `GithubFlavoredMarkdownConverter` if you don't need to customize the environment
    - Alternative 2: Instantiate a new `Environment` and add the necessary extensions yourself

[unreleased]: https://github.com/thephpleague/commonmark/compare/2.3.7...main
[2.3.7]: https://github.com/thephpleague/commonmark/compare/2.3.6...2.3.7
[2.3.6]: https://github.com/thephpleague/commonmark/compare/2.3.5...2.3.6
[2.3.5]: https://github.com/thephpleague/commonmark/compare/2.3.4...2.3.5
[2.3.4]: https://github.com/thephpleague/commonmark/compare/2.3.3...2.3.4
[2.3.3]: https://github.com/thephpleague/commonmark/compare/2.3.2...2.3.3
[2.3.2]: https://github.com/thephpleague/commonmark/compare/2.3.2...main
[2.3.1]: https://github.com/thephpleague/commonmark/compare/2.3.0...2.3.1
[2.3.0]: https://github.com/thephpleague/commonmark/compare/2.2.3...2.3.0
[2.2.5]: https://github.com/thephpleague/commonmark/compare/2.2.4...2.2.5
[2.2.4]: https://github.com/thephpleague/commonmark/compare/2.2.3...2.2.4
[2.2.3]: https://github.com/thephpleague/commonmark/compare/2.2.2...2.2.3
[2.2.2]: https://github.com/thephpleague/commonmark/compare/2.2.1...2.2.2
[2.2.1]: https://github.com/thephpleague/commonmark/compare/2.2.0...2.2.1
[2.2.0]: https://github.com/thephpleague/commonmark/compare/2.1.1...2.2.0
[2.1.3]: https://github.com/thephpleague/commonmark/compare/2.1.2...2.1.3
[2.1.2]: https://github.com/thephpleague/commonmark/compare/2.1.1...2.1.2
[2.1.1]: https://github.com/thephpleague/commonmark/compare/2.0.2...2.1.1
[2.1.0]: https://github.com/thephpleague/commonmark/compare/2.0.2...2.1.0
[2.0.4]: https://github.com/thephpleague/commonmark/compare/2.0.3...2.0.4
[2.0.3]: https://github.com/thephpleague/commonmark/compare/2.0.2...2.0.3
[2.0.2]: https://github.com/thephpleague/commonmark/compare/2.0.1...2.0.2
[2.0.1]: https://github.com/thephpleague/commonmark/compare/2.0.0...2.0.1
[2.0.0]: https://github.com/thephpleague/commonmark/compare/2.0.0-rc2...2.0.0
[2.0.0-rc2]: https://github.com/thephpleague/commonmark/compare/2.0.0-rc1...2.0.0-rc2
[2.0.0-rc1]: https://github.com/thephpleague/commonmark/compare/2.0.0-beta3...2.0.0-rc1
[2.0.0-beta3]: https://github.com/thephpleague/commonmark/compare/2.0.0-beta2...2.0.0-beta3
[2.0.0-beta2]: https://github.com/thephpleague/commonmark/compare/2.0.0-beta1...2.0.0-beta2
[2.0.0-beta1]: https://github.com/thephpleague/commonmark/compare/1.6...2.0.0-beta1


text:
// Copyright 2019 The Oppia Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS-IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/**
 * @fileoverview Requires for FractionInput interaction.
 */

require(
  'interactions/FractionInput/directives/' +
  'fraction-input-rules.service.ts');
require(
  'interactions/FractionInput/directives/' +
  'fraction-input-validation.service.ts');
require(
  'interactions/FractionInput/directives/' +
  'oppia-interactive-fraction-input.directive.ts');
require(
  'interactions/FractionInput/directives/' +
  'oppia-response-fraction-input.directive.ts');
require(
  'interactions/FractionInput/directives/' +
  'oppia-short-response-fraction-input.directive.ts');


text:
<?php if (!defined('W3TC')) die(); ?>
<?php include W3TC_INC_DIR . '/options/common/header.php'; ?>

<?php _e('Monitoring via New Relic is currently','w3-total-cache') ?> <span class="w3tc-<?php if ($new_relic_enabled): ?>enabled"><?php _e('enabled', 'w3-total-cache')?><?php else: ?>disabled"><?php _e('disabled', 'w3-total-cache')?><?php endif; ?>.

        <form action="admin.php?page=<?php echo $this->_page; ?>" method="post">
        <?php echo $this->postbox_header(__('Application Settings', 'w3-total-cache'), '', 'application'); ?>
        <?php if ($new_relic_enabled && $application_settings): ?>

                 Application ID:

                <?php esc_attr_e($application_settings['application-id'])?>

                    Application name:

                    <?php esc_attr_e($application_settings['name'])?>

                    Alerts enabled:

                    <input name="alerts-enabled]" type="hidden" value="false" />
                    <input id="alerts-enabled" name="application[alerts_enabled]" type="checkbox" value="1" <?php checked($application_settings['alerts-enabled'], 'true') ?> <?php $this->sealing_disabled('newrelic') ?>/>

                    Application ApDex Threshold:

                    <input id="app-apdex-t" name="application[app_apdex_t]" type="text" value="<?php esc_attr_e($application_settings['app-apdex-t'])?>" <?php $this->sealing_disabled('newrelic') ?>/>

                    <acronym title="Real User Monitoring">RUM</acronym> ApDex Threshold:

                    <input id="rum-apdex-t" name="application[rum_apdex_t]" type="text" value="<?php esc_attr_e($application_settings['rum-apdex-t'])?>" <?php $this->sealing_disabled('newrelic') ?>/>

                    <acronym title="Real User Monitoring">RUM</acronym> enabled:

                    <input name="rum-enabled]" type="hidden" value="false" />
                    <input id="rum-enabled" name="application[rum_enabled]" type="checkbox" value="1" <?php checked($application_settings['rum-enabled'], 'true') ?> <?php $this->sealing_disabled('newrelic') ?>/>

            <?php echo $this->nonce_field('w3tc'); ?>
            <input type="submit" name="w3tc_save_new_relic" class="w3tc-button-save button-primary" value="Save New Relic settings" />

        <?php elseif(empty($application_settings)): ?>

<?php echo sprintf(__('Application settings could not be retrieved. New Relic may not be properly configured, review the settings.', 'w3-total-cache'),network_admin_url('admin.php?page=w3tc_general#monitoring')) ?>

        <?php else: ?>

<?php _e('Application settings are only visible when New Relic is enabled', 'w3-total-cache', 'w3-total-cache') ?>

        <?php endif; ?>
        <?php echo $this->postbox_footer(); ?>
        </form>
        <form action="admin.php?page=<?php echo $this->_page; ?>" method="post">

        <?php echo $this->postbox_header(__('Dashboard Settings', 'w3-total-cache'), '', 'dashboard'); ?>

                <?php _e('Cache time:', 'w3-total-cache')?>
                <input id="newrelic_cache_time" name="newrelic.cache_time" type="text" value="<?php esc_attr_e($this->_config->get_integer('newrelic.cache_time', 5))?>" />

                        <?php _e('How many minutes data retrieved from New Relic should be stored. Minimum is 1 minute.', 'w3-total-cache') ?>

                <?php echo $this->nonce_field('w3tc'); ?>
                <input type="submit" name="w3tc_save_options" class="w3tc-button-save button-primary" value="Save settings" />

            <?php echo $this->postbox_footer(); ?>
        <?php echo $this->postbox_header(__('Behavior Settings', 'w3-total-cache'), '', 'behavior'); ?>

                    <?php $this->checkbox('newrelic.accept.logged_roles') ?> <?php _e('Use <acronym title="Real User Monitoring">RUM</acronym> only for following user roles', 'w3-total-cache') ?>

                    <?php _e('Select user roles that <acronym title="Real User Monitoring">RUM</acronym> should be enabled for:', 'w3-total-cache') ?>

                        <?php $saved_roles = $this->_config->get_array('newrelic.accept.roles'); ?>
                        <input type="hidden" name="newrelic.accept.roles" value="" />

                        <?php foreach( get_editable_roles() as $role_name => $role_data ) : ?>
                        <input type="checkbox" name="newrelic.accept.roles[]" value="<?php echo $role_name ?>"
                            <?php checked( in_array( $role_name, $saved_roles ) ) ?> id="role_<?php echo $role_name ?>" <?php $this->sealing_disabled('newrelic') ?>/>
                        <label for="role_<?php echo $role_name ?>"><?php echo $role_data['name'] ?>
                        <?php endforeach; ?>

                    <?php _e('Include <acronym title="Real User Monitoring">RUM</acronym> in compressed or cached pages', 'w3-total-cache')?>

                    <input name="newrelic.include_rum" type="hidden" value="0" />
                    <input id="newrelic_include_rum" name="newrelic.include_rum" type="checkbox" value="1" <?php checked($this->_config->get_boolean('newrelic.include_rum')) ?> />

                    <?php _e('This enables inclusion of <acronym title="Real User Monitoring">RUM</acronym> when using Page Cache together with Browser Cache gzip or when using Page Cache with Disc: Enhanced', 'w3-total-cache')?>

            <?php if(w3_is_network() && w3_get_blog_id() == 0): ?>

                <?php _e('Prefix network sites:', 'w3-total-cache') ?>
                <input id="newrelic_appname_prefix" name="newrelic.appname_prefix" type="text" value="<?php echo $this->_config->get_string('newrelic.appname_prefix')?>" />

                <?php _e('Include network sites stats in network:', 'w3-total-cache') ?>

                    <input name="newrelic.merge_with_network" type="hidden" value="0" />
                    <input id="newrelic_merge_with_network" name="newrelic.merge_with_network" type="checkbox" value="1" <?php checked($this->_config->get_boolean('newrelic.merge_with_network')) ?> />

                    <?php _e('This means that the data collected for sites in the network will be included in the main network sites data on New Relic.', 'w3-total-cache')?>

            <?php endif ?>

                <?php _e('Use PHP function to set application name:', 'w3-total-cache') ?>

                    <?php if (w3_is_network()): ?>
                    <input id="newrelic_use_php_function" name="newrelic.use_php_function" type="checkbox" value="1" checked="checked" disabled="disabled" />

                            <?php _e('This is required when using New Relic on a network install to set the proper names for sites.', 'w3-total-cache') ?>

                    <?php else: ?>
                    <input name="newrelic.use_php_function" type="hidden" value="0" />
                    <input id="newrelic_use_php_function" name="newrelic.use_php_function" type="checkbox" value="1" <?php checked($this->_config->get_boolean('newrelic.use_php_function')) ?>/>

                           <?php _e('Enable this to dynamically set proper application name. (See New Relic Per-directory settings for other methods.', 'w3-total-cache') ?>

                    <?php endif ?>

                <?php _e('Enable XMIT', 'w3-total-cache') ?>
                <input name="" type="hidden" value="0" />
                <input id="newrelic_enable_xmit" name="newrelic.enable_xmit" type="checkbox" value="1" <?php checked($this->_config->get_boolean('newrelic.enable_xmit')) ?> <?php $this->sealing_disabled('newrelic') ?>/>

<?php _e(sprintf('Enable this if you want to record the metric and transaction data (until the name is changed using PHP function), specify a value of true for this argument to make the agent send the transaction to the daemon. There is a slight performance impact as it takes a few milliseconds for the agent to dump its data. From %s',
                        'New Relic PHP API doc')
                        , 'w3-total-cache')?>

            <?php echo $this->nonce_field('w3tc'); ?>
            <input type="submit" name="w3tc_save_options" class="w3tc-button-save button-primary" value="Save settings" />

        <?php echo $this->postbox_footer(); ?>
        </form>

    <?php if ($view_metric):?>

    <?php foreach($metric_names as $metric):?>

            <?php echo $metric->name ?>
            <?php echo implode(', ', $metric->fields) ?>

    <?php endforeach; ?>

    <?php endif; ?>
<?php include W3TC_INC_DIR . '/options/common/footer.php'; ?>


text:
layout: post
title:
date:
issue:
subtitle:
sections:
  Datos del cómic y la película: data
  Trama: plot
  Trailer: trailer
  Datos curiosos: funfacts
  Reseña: review
  Galería de imágenes: gallery
  Diferencias: differences
---

Datos del cómic y la película

Trama

Trailer

Datos curiosos

Reseña

Galería de imágenes

Diferencias


text:
package com.cyosp.mpa.api.rest.homebank.v1dot2.response;

import com.cyosp.mpa.api.rest.homebank.v1dot2.model.Currency;
import lombok.Getter;
import lombok.Setter;

/**
 * Created by CYOSP on 2017-07-26.
 */
@Getter
@Setter
public class CategoryResponse extends RootResponse {

    private String name;

    private String balance;

    private Currency currency;
}


text:
This script is use to sync web content or directory and data such as Server folder and MySQL Database.
This script only sync 1 way meaning that changes only happen on **Destination Server**, **Source Server** will remain the same.

Content or data will follow exactly like **Source Server** If anything deleted at **Source Server** **Destination Server** will follow

* **[File](#file "File")**
* **[Requirement](#requirement "Requirement")**
* **[How To](#how-to "How To")**
  * **[www-sync](#www-sync "www-sync")**
  * **[db-sync](#db-sync "db-sync")**

## File
* www-sync (document root sync)
* db-sync (db sync)

## Requirement
* ssh
* rsync
* root acces (sudo)

## How To
### www-sync

1. sudo su
2. git clone https://github.com/wackoen/spinning.git ./sys-sync or copy script inside www-sync.sh file
3. If using git cd ./sys-sync
4. chmod +x ./www-sync.sh (same for copy script)
5. ./www-sync.sh
```
NOTE:
Before running the script, make sure all the variable setting inside www-sync.sh meet with your
requirement.
```

### db-sync

1. sudo su
2. git clone https://github.com/wackoen/spinning.git ./sys-sync or copy script inside www-sync.sh file
3. If using git cd ./sys-sync
4. Create config file
  * /etc/mysql/db-sync.conf - server config for server where want to sync/download a data (source)
  * /et/mysql/db-sync-local.conf - local server config (local)
5. chmod +x ./db-sync.sh (same for copy script)
6. ./db-sync.sh

**Content inside config file**
*db-sync.conf*
```text
[client]
host     = serversource
user     = user
password = test
socket   = /var/run/mysqld/mysqld.sock
```

*db-sync-local.conf*
```text
[client]
host     = serverlocal
user     = user
password = test
socket   = /var/run/mysqld/mysqld.sock
```


text:
title: "Git restore missing files from your online branch"
layout: single
---

Some file was deleted accidently while doing the *CS 421* mp.

```bash
git checkout .
```

Reference: some stackoverflow post


text:
.class Landroid/net/wifi/p2p/WifiP2pService$WifiStateReceiver;
.super Landroid/content/BroadcastReceiver;
.source "WifiP2pService.java"

# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Landroid/net/wifi/p2p/WifiP2pService;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x2
    name = "WifiStateReceiver"
.end annotation

# instance fields
.field final synthetic this$0:Landroid/net/wifi/p2p/WifiP2pService;

# direct methods
.method private constructor <init>(Landroid/net/wifi/p2p/WifiP2pService;)V
    .locals 0
    .parameter

    .prologue
    .line 335
    iput-object p1, p0, Landroid/net/wifi/p2p/WifiP2pService$WifiStateReceiver;->this$0:Landroid/net/wifi/p2p/WifiP2pService;

    invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V

    return-void
.end method

.method synthetic constructor <init>(Landroid/net/wifi/p2p/WifiP2pService;Landroid/net/wifi/p2p/WifiP2pService$1;)V
    .locals 0
    .parameter "x0"
    .parameter "x1"

    .prologue
    .line 335
    invoke-direct {p0, p1}, Landroid/net/wifi/p2p/WifiP2pService$WifiStateReceiver;-><init>(Landroid/net/wifi/p2p/WifiP2pService;)V

    return-void
.end method

# virtual methods
.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
    .locals 5
    .parameter "context"
    .parameter "intent"

    .prologue
    .line 338
    invoke-virtual {p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;

    move-result-object v0

    .line 339
    .local v0, action:Ljava/lang/String;
    const-string v3, "android.net.conn.TETHER_LEASE_CHANGED"

    invoke-virtual {v3, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v3

    if-eqz v3, :cond_1

    .line 341
    const-string v3, "WifiP2pService"

    const-string v4, "ACTION_TETHER_LEASE_CHANGE received."

    invoke-static {v3, v4}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 342
    new-instance v2, Landroid/net/wifi/p2p/WifiP2pService$DhcpLease;

    iget-object v3, p0, Landroid/net/wifi/p2p/WifiP2pService$WifiStateReceiver;->this$0:Landroid/net/wifi/p2p/WifiP2pService;

    invoke-direct {v2, v3}, Landroid/net/wifi/p2p/WifiP2pService$DhcpLease;-><init>(Landroid/net/wifi/p2p/WifiP2pService;)V

    .line 343
    .local v2, lease:Landroid/net/wifi/p2p/WifiP2pService$DhcpLease;
    const-string v3, "dhcpEvent"

    invoke-virtual {p2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v1

    .line 344
    .local v1, event:Ljava/lang/String;
    const-string v3, "dhcpMac"

    invoke-virtual {p2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;

    move-result-object v3

    iput-object v3, v2, Landroid/net/wifi/p2p/WifiP2pService$DhcpLease;->mMac:Ljava/lang/String;

    .line 345
    const-string v3, "dhcpIp"

    invoke-virtual {p2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    iput-object v3, v2, Landroid/net/wifi/p2p/WifiP2pService$DhcpLease;->mIp:Ljava/lang/String;

    .line 347
    const-string v3, "add"

    invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v3

    if-nez v3, :cond_0

    const-string/jumbo v3, "update"

    invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v3

    if-eqz v3, :cond_1

    .line 349
    :cond_0
    iget-object v3, p0, Landroid/net/wifi/p2p/WifiP2pService$WifiStateReceiver;->this$0:Landroid/net/wifi/p2p/WifiP2pService;

    #getter for: Landroid/net/wifi/p2p/WifiP2pService;->mP2pStateMachine:Landroid/net/wifi/p2p/WifiP2pService$P2pStateMachine;
    invoke-static {v3}, Landroid/net/wifi/p2p/WifiP2pService;->access$100(Landroid/net/wifi/p2p/WifiP2pService;)Landroid/net/wifi/p2p/WifiP2pService$P2pStateMachine;

    move-result-object v3

    const v4, 0x23014

    invoke-virtual {v3, v4, v2}, Lcom/android/internal/util/StateMachine;->sendMessage(ILjava/lang/Object;)V

    .line 351
    .end local v1           #event:Ljava/lang/String;
    .end local v2           #lease:Landroid/net/wifi/p2p/WifiP2pService$DhcpLease;
    :cond_1
    return-void
.end method


text:
package com.github.joshholl.intellij.csharp.lang.psi.impl;

import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static com.github.joshholl.intellij.csharp.lang.lexer.CSharpTokenTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import com.github.joshholl.intellij.csharp.lang.psi.*;

public class CSharpAnonymousObjectInitializerImpl extends ASTWrapperPsiElement implements CSharpAnonymousObjectInitializer {

  public CSharpAnonymousObjectInitializerImpl(ASTNode node) {
    super(node);
  }

  public void accept(@NotNull PsiElementVisitor visitor) {
    if (visitor instanceof CSharpVisitor) ((CSharpVisitor)visitor).visitAnonymousObjectInitializer(this);
    else super.accept(visitor);
  }

  @Override
  @Nullable
  public CSharpMemberDeclaratorList getMemberDeclaratorList() {
    return findChildByClass(CSharpMemberDeclaratorList.class);
  }

}


text:
@implementation PKTNotification

#pragma mark - PKTModel

+ (NSDictionary *)dictionaryKeyPathsForPropertyNames {
  return @{
    @"notificationID": @"notification_id",
    @"notificationType": @"type",
    @"textShort": @"text_short",
    @"viewedOn": @"viewed_on",
    @"subscriptionID": @"subscription_id",
    @"createdOn": @"created_on",
    @"createdBy": @"created_by",
  };
}

#pragma mark - Properties

- (BOOL)viewed {
  return self.viewedOn != nil;
}

+ (NSSet *)keyPathsForValuesAffectingViewed {
  return [NSSet setWithObject:@"viewedOn"];
}

#pragma mark - Value transformers

+ (NSValueTransformer *)notificationTypeValueTransformer {
  return [NSValueTransformer pkt_notificationTypeTransformer];
}

+ (NSValueTransformer *)viewedOnValueTransformer {
  return [NSValueTransformer pkt_dateValueTransformer];
}

+ (NSValueTransformer *)createdOnValueTransformer {
  return [NSValueTransformer pkt_dateValueTransformer];
}

+ (NSValueTransformer *)createdByValueTransformer {
  return [NSValueTransformer pkt_transformerWithModelClass:[PKTByLine class]];
}

+ (NSValueTransformer *)textValueTransformer {
  return [NSValueTransformer pkt_emojiValueTransformer];
}

#pragma mark - API calls

+ (PKTAsyncTask *)fetchNotificationsWithOffset:(NSUInteger)offset limit:(NSUInteger)limit {
  return [self fetchForNotificationsWithParameters:nil offset:offset limit:limit];
}

+ (PKTAsyncTask *)fetchForNotificationsWithParameters:(PKTNotificationsRequestParameters *)parameters offset:(NSUInteger)offset limit:(NSUInteger)limit {
  PKTRequest *request = [PKTNotificationsAPI requestForNotificationsWithParameters:parameters offset:offset limit:limit];
  PKTAsyncTask *requestTask = [[PKTClient currentClient] performRequest:request];

  PKTAsyncTask *task = [requestTask map:^id(PKTResponse *response) {
    return [response.body pkt_mappedArrayWithBlock:^id(NSDictionary *dict) {
      return [[PKTNotificationGroup alloc] initWithDictionary:dict];
    }];
  }];

  return task;
}

+ (PKTAsyncTask *)markAllNotificationsAsViewed {
  PKTRequest *request = [PKTNotificationsAPI requestToMarkAllkNotificationsAsViewed];

  return [[PKTClient currentClient] performRequest:request];
}

+ (PKTAsyncTask *)markNotificationsAsViewedWithReferenceID:(NSUInteger)refenceID type:(PKTReferenceType)referenceType {
  PKTRequest *request = [PKTNotificationsAPI requestToMarkNotificationsAsViewedWithReferenceID:refenceID type:referenceType];

  return [[PKTClient currentClient] performRequest:request];
}

+ (PKTAsyncTask *)markNotificationsAsUnviewedWithReferenceID:(NSUInteger)refenceID type:(PKTReferenceType)referenceType {
  PKTRequest *request = [PKTNotificationsAPI requestToMarkNotificationsAsUnviewedWithReferenceID:refenceID type:referenceType];

  return [[PKTClient currentClient] performRequest:request];
}

- (PKTAsyncTask *)markAsViewed {
  PKTRequest *request = [PKTNotificationsAPI requestToMarkNotificationAsViewedWithID:self.notificationID];

  return [[PKTClient currentClient] performRequest:request];
}

- (PKTAsyncTask *)markAsUnviewed {
  PKTRequest *request = [PKTNotificationsAPI requestToMarkNotificationAsUnviewedWithID:self.notificationID];

  return [[PKTClient currentClient] performRequest:request];
}

- (PKTAsyncTask *)star {
  PKTRequest *request = [PKTNotificationsAPI requestToStarNotificationWithID:self.notificationID];

  return [[PKTClient currentClient] performRequest:request];
}

- (PKTAsyncTask *)unstar {
  {
    PKTRequest *request = [PKTNotificationsAPI requestToUnstarNotificationWithID:self.notificationID];

    return [[PKTClient currentClient] performRequest:request];
  }
}

@end


text:
<resources>
    <string name="ringtone_default">Tonu lehenetsia</string>
    <string name="ringtone_silent">Bat ere ez</string>
    <string name="ringtone_picker_title">Tonuak</string>
    <string name="notification_sound_default">Jakinarazpenen soinu lehenetsia</string>
    <string name="alarm_sound_default">Alarmaren soinu lehenetsia</string>
    <string name="add_ringtone_text">Gehitu tonua</string>
    <string name="unable_to_add_ringtone">Ezin da gehitu tonu pertsonalizatua</string>
</resources>


text:
<?php
$content = json_decode($_GET['whatever']);
$content_type = is_object($content) ? $content->content_type : $content[0]->content_type;
// This emits PhanTypeArraySuspiciousNullable twice as a result of the right hand expression being analyzed twice (once when analyzing all expressions, again when inferring type of that expression)
// One of those times, the type got normalized.


text:
import com.afk.calmera.network.Message;

public class ErrorState implements ProcessType {

	@Override
	public Message process(Message msg) {
		msg.getBody().setData("unknown error".getBytes());
		return msg;
	}

}


text:
Serializes a value to the serialization format.

```csharp
public override Task ToStreamAsync(object? value, Stream stream,
    CancellationToken cancellationToken)
```

## See Also

* class [MessagePackServiceSerializer](../MessagePackServiceSerializer.md)
* namespace [Facility.Core.MessagePack](../../Facility.Core.MessagePack.md)

<!-- DO NOT EDIT: generated by xmldocmd for Facility.Core.MessagePack.dll -->


text:
{{contest.name}}

{{contest.countdownKey | translate : contest}}

<acl-editor acl-getter="/api/contest/{{contestId}}/acl"
	acl-setter="/api/contest/{{contestId}}/acl"
	localisation-namespace="contest.permissions"
	async-if="security.hasContestPermission(contestId, 'manage_acl')"></acl-editor>

<button type="button"
	translate="contest.addTaskButton"
	class="hidden-print btn btn-primary btn-sm"
	secref
	ui-sref="contestView.addTask({contestId:contestId})"></button>
<button type="button"
	translate="contest.participantsButton"
	class="hidden-print btn btn-primary btn-sm"
	secref
	ui-sref="contestParticipantsList({contestId:contestId})"></button>
<button type="button"
	translate="contest.results"
	class="hidden-print btn btn-primary btn-sm"
	secref
	ui-sref="contestResults({contestId:contestId})"></button>

			{{ 'contest.task.taskname' | translate}}

				{{task.name}}
				<button type="button"
					uib-tooltip="{{ 'contest.task.editButton' | translate }}"
					class="hidden-print pull-right btn btn-primary btn-xs fa fa-pencil"
					secref
					ui-sref="taskModificationView({taskId: task.id, contestId: contestId})">
				</button>
				<button class="btn btn-danger btn-xs fa fa-remove pull-right"
					ng-if="canRemoveTasks"
					ng-really-click="removeTask(item)"
					item="task"
					ng-really-yes-button="{{'contest.task.remove.confirmationButton'|translate}}"
					ng-really-message="{{'contest.task.remove.confirmation' |translate}}">
				</button>