Documents regarding the equity in a company

Capitalization Chart/Table

List:

  • the owners of the Company’s equity

  • the amount owned by each such owner

Other Equity-Like Options

List:

  • outstanding equity options

  • restricted stock

  • appreciation rights

  • profits interests

  • warrants

  • any other actual, derivative, convertible, phantom or other similar equity (or equity like) interests of the Company

With:

  • names of the holders

  • dates of issuance

  • material terms applicable thereto

Promised Equity Interests

Provide any oral or written agreements to grant or issue:

  • stock

  • options

  • restricted stock

  • appreciation rights

  • profits interests

  • warrants

  • any other equity (or equity-like) interests of the Company

Proxies, Powers of Attorney & Equity Rights

Provide all documents relating to:

  • outstanding proxies

  • powers of attorney

  • voting trusts

  • other assignment of rights attaching to any Equity of the Company

/**
 * Class representing a deck of cards.
 */
class Deck {
    /**
     * Constructor for the Deck class.
     */
    constructor() {
        this.cards = [];
    }

    /**
     * Method to initialize the deck with a standard set of 52 cards.
     */
    initializeDeck() {
        const suits = ["Spades", "Hearts", "Diamonds", "Clubs"];
        const ranks = [
            "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"
        ];

        for (let suit of suits) {
            for (let rank of ranks) {
                this.cards.push(`${rank} of ${suit}`);
            }
        }
    }

    /**
     * Method to shuffle the deck of cards.
     */
    shuffleDeck() {
        for (let i = this.cards.length - 1; i > 0; i--) {
            const j = Math.floor(Math.random() * (i + 1));
            [this.cards[i], this.cards[j]] = [this.cards[j], this.cards[i]];
        }
    }

    /**
     * Method to deal a card from the deck.
     *
     * @returns {string} The dealt card.
     */
    dealCard() {
        if (this.cards.length === 0) {
            throw new Error("Deck is empty. Please initialize the deck and shuffle before dealing cards.");
        }

        return this.cards.pop();
    }
}

/**
 * Class representing a player in the blackjack game.
 */
class Player {
    /**
     * Constructor for the Player class.
     *
     * @param {string} name - The name of the player.
     */
    constructor(name) {
        this.name = name;
        this.hand = [];
    }

    /**
     * Method to add a card to the player's hand.
     *
     * @param {string} card - The card to be added.
     */
    addCardToHand(card) {
        this.hand.push(card);
    }

    /**
     * Method to calculate the total value of the player's hand.
     *
     * @returns {number} The total value of the player's hand.
     */
    calculateHandValue() {
        let totalValue = 0;
        let hasAce = false;

        for (let card of this.hand) {
            const rank = card.split(" ")[0];

            if (rank === "Ace") {
                hasAce = true;
                totalValue += 11;
            } else if (["King", "Queen", "Jack"].includes(rank)) {
                totalValue += 10;
            } else {
                totalValue += parseInt(rank);
            }
        }

        if (hasAce && totalValue > 21) {
            totalValue -= 10;
        }

        return totalValue;
    }
}

/**
 * Function to start the online blackjack game.
 *
 * @param {string} playerName - The name of the player.
 */
function startBlackjackGame(playerName) {
    const deck = new Deck();
    deck.initializeDeck();
    deck.shuffleDeck();

    const player = new Player(playerName);

    // Deal initial cards
    player.addCardToHand(deck.dealCard());
    player.addCardToHand(deck.dealCard());

    console.log(`Welcome to the online blackjack game, ${player.name}!`);
    console.log(`Your initial hand: ${player.hand.join(", ")}`);
    console.log(`Total hand value: ${player.calculateHandValue()}`);
}

// Usage Example for startBlackjackGame

startBlackjackGame("John");

Documentation

Provide:

  • all certificates, books and transfer documents or other record

Showing:

  • all issuances, transfers and/or cancellations of the equity interests identified.

Voting, Operating, Stockholder, or Sales Rights

Provide:

  • voting agreements

  • operating agreements

  • stockholder agreements

  • transfer restriction agreements

  • rights of first offer or refusal

  • co-sale rights agreement

  • put/call agreements

  • preemptive rights

  • registration agreements

  • other agreements that affect equity and/or ownership or control of the Company

Transaction Agreements

Provide agreements and other documentation relating to:

  • repurchases

  • redemptions

  • exchanges

  • conversions

  • similar transactions involving the Equity of the Company

Restrictions

Describe any:

  • restrictions, contractual or otherwise, on the transfer of the Company’s assets or equity, or its ability to issue and pay dividends.