text:
package com.thinkaurelius.titan.pkgtest;

import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableMap;
import com.thinkaurelius.titan.util.system.IOUtils;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class GraphOfTheGodsCompatIT extends AbstractTitanAssemblyIT {

    private static final Logger log =
            LoggerFactory.getLogger(GraphOfTheGodsCompatIT.class);

    private static final String BDB_ES = "bdb-es";

    /**
     * Download and open databases created by previous versions of Titan.
     * A basic check for cluster-restart forward-compatibility.
     */
    @Test
    public void testOpenAndQueryCompatibleDatabaseFiles() throws Exception {
        String compatManifest = Joiner.on(File.separator).join("target", "test-classes", "compat.csv");
        BufferedReader compatReader = null;
        int lineNumber = 0;
        int tested = 0;
        try {
            log.info("Opening compat manifest: {}", compatManifest);
            compatReader = new BufferedReader(new FileReader(compatManifest));
            String l;
            while (null != (l = compatReader.readLine())) {
                lineNumber++;
                String tokens[] = l.split(",");
                if (3 != tokens.length) {
                    log.warn("Ignoring line {} (splitting on commas yielded {} tokens instead of the expected {}): {}", lineNumber, tokens.length, 3, l);
                    continue;
                }
                String version = tokens[0].trim();
                String config = tokens[1].trim();
                String archiveurl = tokens[2].trim();
                if (version.isEmpty()) {
                    log.warn("Ignoring line {} due to empty version field", lineNumber);
                    continue;
                }
                if (config.isEmpty()) {
                    log.warn("Ignoring line {} due to empty config field", lineNumber);
                    continue;
                }
                if (archiveurl.isEmpty()) {
                    log.warn("Ignoring line {} due to empty archiveurl field", lineNumber);
                    continue;
                }

                if (!config.equals(BDB_ES)) {
                    log.warn("Ignoring line {} with unknown config string {} (only {} is supported)", lineNumber, config, BDB_ES);
                }

                downloadAndTest(archiveurl);
                tested++;
            }
        } finally {
            IOUtils.closeQuietly(compatReader);
        }

        log.info("Read compat manifest with {} lines ({} tested, {} ignored)",
                lineNumber, tested, lineNumber - tested);
    }

    private void downloadAndTest(String archiveurl) throws IOException, InterruptedException {
        // Extract the current release's zipfile
        FileUtils.deleteQuietly(new File(ZIPFILE_EXTRACTED));
        unzip(BUILD_DIR, ZIPFILE_PATH);

        // Now download the archive at the URL containing DB files from an older Titan version
        downloadFile(archiveurl, "old_db.zip", new File(ZIPFILE_EXTRACTED));
        unzip(ZIPFILE_EXTRACTED, "old_db.zip");

        // Now start the current release using the old DB files (new code, old data) and query it
        // The config file below must point at the the data unzipped in the previous step
        testGotGQueries("conf/titan-berkeleyje-es.properties");
    }

    private void downloadFile(String url, String toLocalPath, File workingDir) throws IOException, InterruptedException {
        command(workingDir, "curl", "--output", toLocalPath, url);
    }

    private void testGotGQueries(String config) throws IOException, InterruptedException {
        String idxDir = new File (ZIPFILE_EXTRACTED + File.separator + "db" + File.separator + "es").getAbsolutePath();
        parseTemplateAndRunExpect("compat-test.expect.vm",
                ImmutableMap.of("graphConfig", config, "graphToString", "berk", "indexDirectory", idxDir));
    }
}


text:
.class Lcom/android/internal/telephony/ISms$Stub$Proxy;
.super Ljava/lang/Object;
.source "ISms.java"

# interfaces
.implements Lcom/android/internal/telephony/ISms;

# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/android/internal/telephony/ISms$Stub;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0xa
    name = "Proxy"
.end annotation

# instance fields
.field private mRemote:Landroid/os/IBinder;

# direct methods
.method constructor <init>(Landroid/os/IBinder;)V
    .locals 0
    .parameter "remote"

    .prologue
    .line 239
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 240
    iput-object p1, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    .line 241
    return-void
.end method

# virtual methods
.method public asBinder()Landroid/os/IBinder;
    .locals 1

    .prologue
    .line 244
    iget-object v0, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    return-object v0
.end method

.method public copyMessageToIccEf(I[B[B)Z
    .locals 6
    .parameter "status"
    .parameter "pdu"
    .parameter "smsc"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    const/4 v2, 0x0

    .line 314
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 315
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 318
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v3, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 319
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeInt(I)V

    .line 320
    invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeByteArray([B)V

    .line 321
    invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeByteArray([B)V

    .line 322
    iget-object v3, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/4 v4, 0x3

    const/4 v5, 0x0

    invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 323
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V

    .line 324
    invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    move-result v3

    if-eqz v3, :cond_0

    const/4 v2, 0x1

    .line 327
    .local v2, _result:Z
    :cond_0
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 328
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 330
    return v2

    .line 327
    .end local v2           #_result:Z
    :catchall_0
    move-exception v3

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 328
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v3
.end method

.method public disableCellBroadcast(I)Z
    .locals 6
    .parameter "messageIdentifier"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    const/4 v2, 0x0

    .line 524
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 525
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 528
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v3, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 529
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeInt(I)V

    .line 530
    iget-object v3, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/16 v4, 0x8

    const/4 v5, 0x0

    invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 531
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V

    .line 532
    invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    move-result v3

    if-eqz v3, :cond_0

    const/4 v2, 0x1

    .line 535
    .local v2, _result:Z
    :cond_0
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 536
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 538
    return v2

    .line 535
    .end local v2           #_result:Z
    :catchall_0
    move-exception v3

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 536
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v3
.end method

.method public disableCellBroadcastRange(II)Z
    .locals 6
    .parameter "startMessageId"
    .parameter "endMessageId"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    const/4 v2, 0x0

    .line 585
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 586
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 589
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v3, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 590
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeInt(I)V

    .line 591
    invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeInt(I)V

    .line 592
    iget-object v3, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/16 v4, 0xa

    const/4 v5, 0x0

    invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 593
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V

    .line 594
    invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    move-result v3

    if-eqz v3, :cond_0

    const/4 v2, 0x1

    .line 597
    .local v2, _result:Z
    :cond_0
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 598
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 600
    return v2

    .line 597
    .end local v2           #_result:Z
    :catchall_0
    move-exception v3

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 598
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v3
.end method

.method public enableCellBroadcast(I)Z
    .locals 6
    .parameter "messageIdentifier"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    const/4 v2, 0x0

    .line 495
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 496
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 499
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v3, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 500
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeInt(I)V

    .line 501
    iget-object v3, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/4 v4, 0x7

    const/4 v5, 0x0

    invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 502
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V

    .line 503
    invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    move-result v3

    if-eqz v3, :cond_0

    const/4 v2, 0x1

    .line 506
    .local v2, _result:Z
    :cond_0
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 507
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 509
    return v2

    .line 506
    .end local v2           #_result:Z
    :catchall_0
    move-exception v3

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 507
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v3
.end method

.method public enableCellBroadcastRange(II)Z
    .locals 6
    .parameter "startMessageId"
    .parameter "endMessageId"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    const/4 v2, 0x0

    .line 554
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 555
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 558
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v3, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 559
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeInt(I)V

    .line 560
    invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeInt(I)V

    .line 561
    iget-object v3, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/16 v4, 0x9

    const/4 v5, 0x0

    invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 562
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V

    .line 563
    invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    move-result v3

    if-eqz v3, :cond_0

    const/4 v2, 0x1

    .line 566
    .local v2, _result:Z
    :cond_0
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 567
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 569
    return v2

    .line 566
    .end local v2           #_result:Z
    :catchall_0
    move-exception v3

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 567
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v3
.end method

.method public getAllMessagesFromIccEf()Ljava/util/List;
    .locals 6
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List",
            "<",
            "Lcom/android/internal/telephony/SmsRawData;",
            ">;"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    .line 257
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 258
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 261
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v3, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 262
    iget-object v3, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/4 v4, 0x1

    const/4 v5, 0x0

    invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 263
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V

    .line 264
    sget-object v3, Lcom/android/internal/telephony/SmsRawData;->CREATOR:Landroid/os/Parcelable$Creator;

    invoke-virtual {v1, v3}, Landroid/os/Parcel;->createTypedArrayList(Landroid/os/Parcelable$Creator;)Ljava/util/ArrayList;
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    move-result-object v2

    .line 267
    .local v2, _result:Ljava/util/List;,"Ljava/util/List<Lcom/android/internal/telephony/SmsRawData;>;"
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 268
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 270
    return-object v2

    .line 267
    .end local v2           #_result:Ljava/util/List;,"Ljava/util/List<Lcom/android/internal/telephony/SmsRawData;>;"
    :catchall_0
    move-exception v3

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 268
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v3
.end method

.method public getInterfaceDescriptor()Ljava/lang/String;
    .locals 1

    .prologue
    .line 248
    const-string v0, "com.android.internal.telephony.ISms"

    return-object v0
.end method

.method public getPremiumSmsPermission(Ljava/lang/String;)I
    .locals 6
    .parameter "packageName"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    .line 608
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 609
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 612
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v3, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 613
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 614
    iget-object v3, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/16 v4, 0xb

    const/4 v5, 0x0

    invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 615
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V

    .line 616
    invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    move-result v2

    .line 619
    .local v2, _result:I
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 620
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 622
    return v2

    .line 619
    .end local v2           #_result:I
    :catchall_0
    move-exception v3

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 620
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v3
.end method

.method public sendData(Ljava/lang/String;Ljava/lang/String;I[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V
    .locals 5
    .parameter "destAddr"
    .parameter "scAddr"
    .parameter "destPort"
    .parameter "data"
    .parameter "sentIntent"
    .parameter "deliveryIntent"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    .line 357
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 358
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 360
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v2, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 361
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 362
    invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 363
    invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeInt(I)V

    .line 364
    invoke-virtual {v0, p4}, Landroid/os/Parcel;->writeByteArray([B)V

    .line 365
    if-eqz p5, :cond_0

    .line 366
    const/4 v2, 0x1

    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInt(I)V

    .line 367
    const/4 v2, 0x0

    invoke-virtual {p5, v0, v2}, Landroid/app/PendingIntent;->writeToParcel(Landroid/os/Parcel;I)V

    .line 372
    :goto_0
    if-eqz p6, :cond_1

    .line 373
    const/4 v2, 0x1

    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInt(I)V

    .line 374
    const/4 v2, 0x0

    invoke-virtual {p6, v0, v2}, Landroid/app/PendingIntent;->writeToParcel(Landroid/os/Parcel;I)V

    .line 379
    :goto_1
    iget-object v2, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/4 v3, 0x4

    const/4 v4, 0x0

    invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 380
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    .line 383
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 384
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 386
    return-void

    .line 370
    :cond_0
    const/4 v2, 0x0

    :try_start_1
    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInt(I)V
    :try_end_1
    .catchall {:try_start_1 .. :try_end_1} :catchall_0

    goto :goto_0

    .line 383
    :catchall_0
    move-exception v2

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 384
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v2

    .line 377
    :cond_1
    const/4 v2, 0x0

    :try_start_2
    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInt(I)V
    :try_end_2
    .catchall {:try_start_2 .. :try_end_2} :catchall_0

    goto :goto_1
.end method

.method public sendMultipartText(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
    .locals 5
    .parameter "destinationAddress"
    .parameter "scAddress"
    .parameter
    .parameter
    .parameter
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            "Ljava/lang/String;",
            "Ljava/util/List",
            "<",
            "Ljava/lang/String;",
            ">;",
            "Ljava/util/List",
            "<",
            "Landroid/app/PendingIntent;",
            ">;",
            "Ljava/util/List",
            "<",
            "Landroid/app/PendingIntent;",
            ">;)V"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    .line 465
    .local p3, parts:Ljava/util/List;,"Ljava/util/List<Ljava/lang/String;>;"
    .local p4, sentIntents:Ljava/util/List;,"Ljava/util/List<Landroid/app/PendingIntent;>;"
    .local p5, deliveryIntents:Ljava/util/List;,"Ljava/util/List<Landroid/app/PendingIntent;>;"
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 466
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 468
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v2, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 469
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 470
    invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 471
    invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeStringList(Ljava/util/List;)V

    .line 472
    invoke-virtual {v0, p4}, Landroid/os/Parcel;->writeTypedList(Ljava/util/List;)V

    .line 473
    invoke-virtual {v0, p5}, Landroid/os/Parcel;->writeTypedList(Ljava/util/List;)V

    .line 474
    iget-object v2, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/4 v3, 0x6

    const/4 v4, 0x0

    invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 475
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    .line 478
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 479
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 481
    return-void

    .line 478
    :catchall_0
    move-exception v2

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 479
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v2
.end method

.method public sendText(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V
    .locals 5
    .parameter "destAddr"
    .parameter "scAddr"
    .parameter "text"
    .parameter "sentIntent"
    .parameter "deliveryIntent"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    .line 412
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 413
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 415
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v2, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 416
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 417
    invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 418
    invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 419
    if-eqz p4, :cond_0

    .line 420
    const/4 v2, 0x1

    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInt(I)V

    .line 421
    const/4 v2, 0x0

    invoke-virtual {p4, v0, v2}, Landroid/app/PendingIntent;->writeToParcel(Landroid/os/Parcel;I)V

    .line 426
    :goto_0
    if-eqz p5, :cond_1

    .line 427
    const/4 v2, 0x1

    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInt(I)V

    .line 428
    const/4 v2, 0x0

    invoke-virtual {p5, v0, v2}, Landroid/app/PendingIntent;->writeToParcel(Landroid/os/Parcel;I)V

    .line 433
    :goto_1
    iget-object v2, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/4 v3, 0x5

    const/4 v4, 0x0

    invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 434
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    .line 437
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 438
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 440
    return-void

    .line 424
    :cond_0
    const/4 v2, 0x0

    :try_start_1
    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInt(I)V
    :try_end_1
    .catchall {:try_start_1 .. :try_end_1} :catchall_0

    goto :goto_0

    .line 437
    :catchall_0
    move-exception v2

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 438
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v2

    .line 431
    :cond_1
    const/4 v2, 0x0

    :try_start_2
    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInt(I)V
    :try_end_2
    .catchall {:try_start_2 .. :try_end_2} :catchall_0

    goto :goto_1
.end method

.method public setPremiumSmsPermission(Ljava/lang/String;I)V
    .locals 5
    .parameter "packageName"
    .parameter "permission"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    .line 630
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 631
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 633
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v2, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 634
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 635
    invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeInt(I)V

    .line 636
    iget-object v2, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/16 v3, 0xc

    const/4 v4, 0x0

    invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 637
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    .line 640
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 641
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 643
    return-void

    .line 640
    :catchall_0
    move-exception v2

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 641
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v2
.end method

.method public updateMessageOnIccEf(II[B)Z
    .locals 6
    .parameter "messageIndex"
    .parameter "newStatus"
    .parameter "pdu"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    const/4 v2, 0x0

    .line 285
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 286
    .local v0, _data:Landroid/os/Parcel;
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v1

    .line 289
    .local v1, _reply:Landroid/os/Parcel;
    :try_start_0
    const-string v3, "com.android.internal.telephony.ISms"

    invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V

    .line 290
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeInt(I)V

    .line 291
    invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeInt(I)V

    .line 292
    invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeByteArray([B)V

    .line 293
    iget-object v3, p0, Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;

    const/4 v4, 0x2

    const/4 v5, 0x0

    invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    .line 294
    invoke-virtual {v1}, Landroid/os/Parcel;->readException()V

    .line 295
    invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    move-result v3

    if-eqz v3, :cond_0

    const/4 v2, 0x1

    .line 298
    .local v2, _result:Z
    :cond_0
    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 299
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 301
    return v2

    .line 298
    .end local v2           #_result:Z
    :catchall_0
    move-exception v3

    invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V

    .line 299
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    throw v3
.end method

redpajama_set_name: RedPajamaGithub


text:
package com.ippon.kafka.streams.serdes.pojos;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

@JsonNaming(PropertyNamingStrategy.UpperCamelCaseStrategy.class)
@JsonIgnoreProperties(ignoreUnknown = true)
public class TwitterUser {
    private Long id;
    private String name;
    private String screenName;
    private String location;
    private String description;
    private boolean contributorsEnabled;
    private String profileImageURL;
    private boolean defaultProfileImage;
    private String URL;
    private int followersCount;
    private int friendsCount;
    private int favouritesCount;
    private int utcOffset;
    private String lang;
    private int statusesCount;
    private boolean geoEnabled;
    private boolean verified;
    private boolean translator;
    private int listedCount;
    private boolean followRequestSent;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getScreenName() {
        return screenName;
    }

    public void setScreenName(String screenName) {
        this.screenName = screenName;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public boolean isContributorsEnabled() {
        return contributorsEnabled;
    }

    public void setContributorsEnabled(boolean contributorsEnabled) {
        this.contributorsEnabled = contributorsEnabled;
    }

    public String getProfileImageURL() {
        return profileImageURL;
    }

    public void setProfileImageURL(String profileImageURL) {
        this.profileImageURL = profileImageURL;
    }

    public boolean isDefaultProfileImage() {
        return defaultProfileImage;
    }

    public void setDefaultProfileImage(boolean defaultProfileImage) {
        this.defaultProfileImage = defaultProfileImage;
    }

    public String getURL() {
        return URL;
    }

    public void setURL(String URL) {
        this.URL = URL;
    }

    public int getFollowersCount() {
        return followersCount;
    }

    public void setFollowersCount(int followersCount) {
        this.followersCount = followersCount;
    }

    public int getFriendsCount() {
        return friendsCount;
    }

    public void setFriendsCount(int friendsCount) {
        this.friendsCount = friendsCount;
    }

    public int getFavouritesCount() {
        return favouritesCount;
    }

    public void setFavouritesCount(int favouritesCount) {
        this.favouritesCount = favouritesCount;
    }

    public int getUtcOffset() {
        return utcOffset;
    }

    public void setUtcOffset(int utcOffset) {
        this.utcOffset = utcOffset;
    }

    public String getLang() {
        return lang;
    }

    public void setLang(String lang) {
        this.lang = lang;
    }

    public int getStatusesCount() {
        return statusesCount;
    }

    public void setStatusesCount(int statusesCount) {
        this.statusesCount = statusesCount;
    }

    public boolean isGeoEnabled() {
        return geoEnabled;
    }

    public void setGeoEnabled(boolean geoEnabled) {
        this.geoEnabled = geoEnabled;
    }

    public boolean isVerified() {
        return verified;
    }

    public void setVerified(boolean verified) {
        this.verified = verified;
    }

    public boolean isTranslator() {
        return translator;
    }

    public void setTranslator(boolean translator) {
        this.translator = translator;
    }

    public int getListedCount() {
        return listedCount;
    }

    public void setListedCount(int listedCount) {
        this.listedCount = listedCount;
    }

    public boolean isFollowRequestSent() {
        return followRequestSent;
    }

    public void setFollowRequestSent(boolean followRequestSent) {
        this.followRequestSent = followRequestSent;
    }

    @Override
    public String toString() {
        return "TwitterUser{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", screenName='" + screenName + '\'' +
                ", location='" + location + '\'' +
                ", description='" + description + '\'' +
                ", contributorsEnabled=" + contributorsEnabled +
                ", profileImageURL='" + profileImageURL + '\'' +
                ", defaultProfileImage=" + defaultProfileImage +
                ", URL='" + URL + '\'' +
                ", followersCount=" + followersCount +
                ", friendsCount=" + friendsCount +
                ", favouritesCount=" + favouritesCount +
                ", utcOffset=" + utcOffset +
                ", lang='" + lang + '\'' +
                ", statusesCount=" + statusesCount +
                ", geoEnabled=" + geoEnabled +
                ", verified=" + verified +
                ", translator=" + translator +
                ", listedCount=" + listedCount +
                ", followRequestSent=" + followRequestSent +
                '}';
    }
}


text:
using System;
using NUnit.Framework;

namespace Camunda.Client.Test
{
	[TestFixture]
    public class TestCamunda
    {
		[Test]
		public void Authentication()
		{
			var cc = new CamundaConnection("http://localhost:8080/camunda/api/");
			cc.Authenticate("demo", "demo");

			var h = cc.GetTaskHistory(Guid.Parse("b7a9c075-429e-11e6-8781-902b34e38592"));
		}
	}
}


text:
<?php

namespace Ciconia\Extension\Textile;

use Ciconia\Common\Text;
use Ciconia\Extension\ExtensionInterface;
use Ciconia\Markdown;

/**
 * [Experimental] Comments
 *
 * @since 1.1
 * @author Kazuyuki Hayashi <hayashi@valnur.net>
 */
class CommentExtension implements ExtensionInterface
{

    /**
     * {@inheritdoc}
     */
    public function register(Markdown $markdown)
    {
        $markdown->on('block', array($this, 'processComment'), 50);
    }

    /**
     * @param Text $text
     */
    public function processComment(Text $text)
    {
        $text->replace('/^###\.[ \t]*(.+?)\n{2,}/m', "\n\n");
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return 'comment';
    }
}


text:
import django
django.setup()

import logging

logger = logging.getLogger('gchatautorespond.sync_licenses')
logger.info('no longer does anything')


text:
#include "Proxy.h"
#include<qs/log/LogLevel.h>

#include <commonlib/commonlib.h>

#include <qs/workers/proc/io/Input.h>
#include <qs/workers/proc/io/Output.h>
#include <qs/workers/proc/io/IOManager.h>

#include <qs/workers/proc/wcm/WorkContextManager.h>
#include <org/invenireaude/qsystem/workers/Context.h>
#include <org/invenireaude/qsystem/workers/Attribute.h>
#include <org/invenireaude/qsystem/workers/DataFactory.h>

#include "../GlobalContext.h"

using namespace ::org::invenireaude::qsystem::workers;

namespace IAS {
namespace QS {
namespace Workers {
namespace Proc {
namespace Logic {

/*************************************************************************/
Proxy::Proxy(const ::org::invenireaude::qsystem::workers::logic::Proxy* dmParameters,
					 WCM::WorkContextManager* pWorkContextManager):
		LogicBase(dmParameters,pWorkContextManager){
	IAS_TRACER;

}
/*************************************************************************/
Proxy::~Proxy() throw(){
	IAS_TRACER;
}
/*************************************************************************/
void Proxy::computeDM(::org::invenireaude::qsystem::workers::Ext::ContextPtr& dmContext,
					 	DM::DataObjectPtr& dmData){
	IAS_TRACER;

	IAS_LOG(IAS::QS::LogLevel::INSTANCE.isInfo(),"==Proxy starts.");

	//TODO use logic settings for input/output
	//TODO getInput name? for the default output

	Ext::ContextPtr dmContextTmp=dmContext->duplicateContext();

	pWorkContextManager->getIOManager()->getOutput("output")->send(dmContextTmp,dmData);

	Ext::ContextPtr dmContextMatch(DataFactory::GetInstance()->getContextType()->createContext());

	if(dmContext->isSetMID())
		dmContextMatch->setMID(dmContext->getMID());

	try{

		IAS_LOG(IAS::QS::LogLevel::INSTANCE.isInfo(),"= Proxy receiving ...");
		pWorkContextManager->getIOManager()->getInput("output")->receive(dmContextMatch,dmData);
		IAS_LOG(IAS::QS::LogLevel::INSTANCE.isInfo(),"= Proxy sending ...");
		pWorkContextManager->getIOManager()->getOutput("input")->send(dmContext,dmData);

	}catch(Exception& e){
		IAS_LOG(IAS::QS::LogLevel::INSTANCE.isInfo(),"= Proxy error ...");
		tryError(dmContext,dmData,e);
	}

	IAS_LOG(IAS::QS::LogLevel::INSTANCE.isInfo(),"==Proxy ends.");
}
/*************************************************************************/
void Proxy::computeRaw(::org::invenireaude::qsystem::workers::Ext::ContextPtr& dmContext,
					  API::Message* pMessage){
	IAS_TRACER;

	IAS_LOG(IAS::QS::LogLevel::INSTANCE.isInfo(),"==Proxy starts.");

	//TODO use logic settings for input/output
	//TODO getInput name? for the default output

	Ext::ContextPtr dmContextTmp=dmContext->duplicateContext();

	pWorkContextManager->getIOManager()->getOutput("output")->send(dmContextTmp,*pMessage->getContent());

	Ext::ContextPtr dmContextMatch(DataFactory::GetInstance()->getContextType()->createContext());

	Ext::AttributeList& lstAttributes(dmContext->getAttributesList());

	for(int iIdx=0; iIdx < lstAttributes.size(); iIdx++)
			if(lstAttributes.at(iIdx)->getName().compare(API::Attributes::CA_MID) == 0){
				Attribute* pAttribute=dmContextMatch->createAttributes();
				pAttribute->setName(API::Attributes::CA_CID);
				pAttribute->setValue(lstAttributes.at(iIdx)->getValue());
				break;
			}

	try{

		API::Message::PtrHolder ptrMessage;
		pWorkContextManager->getIOManager()->getInput("output")->receive(dmContextMatch,ptrMessage);
		pWorkContextManager->getIOManager()->getOutput("input")->send(dmContext,*ptrMessage->getContent());

	}catch(Exception& e){
		tryError(dmContext,pMessage,e);
	}

	IAS_LOG(IAS::QS::LogLevel::INSTANCE.isInfo(),"==Proxy ends.");
}
/*************************************************************************/
}
}
}
}
}


text:
class EXPCL_DTOOLCONFIG NotifyCategory : public MemoryBase, public ConfigFlags {
private:
  NotifyCategory(const string &fullname, const string &basename,
                 NotifyCategory *parent);

PUBLISHED:
  INLINE string get_fullname() const;
  INLINE string get_basename() const;
  INLINE NotifySeverity get_severity() const;
  INLINE void set_severity(NotifySeverity severity);

  INLINE bool is_on(NotifySeverity severity) const;

  // When NOTIFY_DEBUG is not defined, the categories will never be
  // set to "spam" or "debug" severities, and these methods are
  // redefined to be static to make it more obvious to the compiler.
  // However, we still want to present a consistent interface to our
  // scripting language, so during the interrogate pass (that is, when
  // CPPPARSER is defined), we still pretend they're nonstatic.
#if defined(NOTIFY_DEBUG) || defined(CPPPARSER)
  INLINE bool is_spam() const;
  INLINE bool is_debug() const;
#else
  CONSTEXPR static bool is_spam();
  CONSTEXPR static bool is_debug();
#endif
  INLINE bool is_info() const;
  INLINE bool is_warning() const;
  INLINE bool is_error() const;
  INLINE bool is_fatal() const;

  ostream &out(NotifySeverity severity, bool prefix = true) const;
  INLINE ostream &spam(bool prefix = true) const;
  INLINE ostream &debug(bool prefix = true) const;
  INLINE ostream &info(bool prefix = true) const;
  INLINE ostream &warning(bool prefix = true) const;
  INLINE ostream &error(bool prefix = true) const;
  INLINE ostream &fatal(bool prefix = true) const;

  int get_num_children() const;
  NotifyCategory *get_child(int i) const;

  static void set_server_delta(long delta);

private:
  string get_config_name() const;
  void update_severity_cache();
  static bool get_notify_timestamp();
  static bool get_check_debug_notify_protect();

  string _fullname;
  string _basename;
  NotifyCategory *_parent;
  ConfigVariableEnum<NotifySeverity> _severity;
  typedef vector<NotifyCategory *> Children;
  Children _children;

  static long _server_delta; // not a time_t because server delta may be signed.

  AtomicAdjust::Integer _local_modified;
  NotifySeverity _severity_cache;

  friend class Notify;
};

INLINE ostream &operator << (ostream &out, const NotifyCategory &cat);

#include "notifyCategory.I"

#endif


text:
/*
 * 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.
 */
/*
 * This code was generated by https://github.com/googleapis/google-api-java-client-services/
 * Modify at your own risk.
 */

package com.google.api.services.people.v1.model;

/**
 * The source of a field.
 *
 *
 This is the Java data model class that specifies how to parse/serialize into the JSON that is
 * transmitted over HTTP when working with the People API. For a detailed explanation see:
 * https://developers.google.com/api-client-library/java/google-http-java-client/json
 *

 *
 * @author Google, Inc.
 */
@SuppressWarnings("javadoc")
public final class Source extends com.google.api.client.json.GenericJson {

  /**
   * **Only populated in `person.metadata.sources`.** The [HTTP entity
   * tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String etag;

  /**
   * The unique identifier within the source type generated by the server.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String id;

  /**
   * Output only. **Only populated in `person.metadata.sources`.** Metadata about a source of type
   * PROFILE.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private ProfileMetadata profileMetadata;

  /**
   * The source type.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String type;

  /**
   * Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this
   * source.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private String updateTime;

  /**
   * **Only populated in `person.metadata.sources`.** The [HTTP entity
   * tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation.
   * @return value or {@code null} for none
   */
  public java.lang.String getEtag() {
    return etag;
  }

  /**
   * **Only populated in `person.metadata.sources`.** The [HTTP entity
   * tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation.
   * @param etag etag or {@code null} for none
   */
  public Source setEtag(java.lang.String etag) {
    this.etag = etag;
    return this;
  }

  /**
   * The unique identifier within the source type generated by the server.
   * @return value or {@code null} for none
   */
  public java.lang.String getId() {
    return id;
  }

  /**
   * The unique identifier within the source type generated by the server.
   * @param id id or {@code null} for none
   */
  public Source setId(java.lang.String id) {
    this.id = id;
    return this;
  }

  /**
   * Output only. **Only populated in `person.metadata.sources`.** Metadata about a source of type
   * PROFILE.
   * @return value or {@code null} for none
   */
  public ProfileMetadata getProfileMetadata() {
    return profileMetadata;
  }

  /**
   * Output only. **Only populated in `person.metadata.sources`.** Metadata about a source of type
   * PROFILE.
   * @param profileMetadata profileMetadata or {@code null} for none
   */
  public Source setProfileMetadata(ProfileMetadata profileMetadata) {
    this.profileMetadata = profileMetadata;
    return this;
  }

  /**
   * The source type.
   * @return value or {@code null} for none
   */
  public java.lang.String getType() {
    return type;
  }

  /**
   * The source type.
   * @param type type or {@code null} for none
   */
  public Source setType(java.lang.String type) {
    this.type = type;
    return this;
  }

  /**
   * Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this
   * source.
   * @return value or {@code null} for none
   */
  public String getUpdateTime() {
    return updateTime;
  }

  /**
   * Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this
   * source.
   * @param updateTime updateTime or {@code null} for none
   */
  public Source setUpdateTime(String updateTime) {
    this.updateTime = updateTime;
    return this;
  }

  @Override
  public Source set(String fieldName, Object value) {
    return (Source) super.set(fieldName, value);
  }

  @Override
  public Source clone() {
    return (Source) super.clone();
  }

}


text:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
using Vanara.Extensions;
using Vanara.PInvoke;

namespace Vanara.InteropServices
{
	/// Method used to pack a list of strings into memory.
	public enum StringListPackMethod
	{
		/// Each string is separated by a single '\0' character and is terminated by two '\0' characters.
		Concatenated,

		///
		/// A contiguous block of memory containing an array of pointers to strings followed by a NULL pointer and then followed by the
		/// actual strings.
		///
		Packed
	}

	/// Interface to capture unmanaged memory methods.
	public interface IMemoryMethods : ISimpleMemoryMethods
	{
		/// Gets the Ansi <see cref="SecureString"/> allocation method.
		/// <param name="secureString">The secure string.</param>
		/// <returns>A memory handle.</returns>
		IntPtr AllocSecureStringAnsi(SecureString secureString);

		/// Gets the Unicode <see cref="SecureString"/> allocation method.
		/// <param name="secureString">The secure string.</param>
		/// <returns>A memory handle.</returns>
		IntPtr AllocSecureStringUni(SecureString secureString);

		/// Gets the Ansi string allocation method.
		/// <param name="value">The value.</param>
		/// <returns>A memory handle.</returns>
		IntPtr AllocStringAnsi(string value);

		/// Gets the Unicode string allocation method.
		/// <param name="value">The value.</param>
		/// <returns>A memory handle.</returns>
		IntPtr AllocStringUni(string value);

		/// Gets the Ansi <see cref="SecureString"/> free method.
		/// <param name="hMem">A memory handle.</param>
		void FreeSecureStringAnsi(IntPtr hMem);

		/// Gets the Unicode <see cref="SecureString"/> free method.
		/// <param name="hMem">A memory handle.</param>
		void FreeSecureStringUni(IntPtr hMem);

		/// Gets the reallocation method.
		/// <param name="hMem">A memory handle.</param>
		/// <param name="size">The size, in bytes, of memory to allocate.</param>
		/// <returns>A memory handle.</returns>
		IntPtr ReAllocMem(IntPtr hMem, int size);
	}

	/// Interface for classes that support safe memory pointers.
	public interface ISafeMemoryHandle : IDisposable
	{
		/// Gets a value indicating whether the handle value is invalid.
		bool IsInvalid { get; }

		/// Gets the size of the allocated memory block.
		/// <value>The size of the allocated memory block.</value>
		SizeT Size { get; set; }

		///
		/// Adds reference to other SafeMemoryHandle objects, the pointer to which are referred to by this object. This is to ensure that
		/// such objects being referred to wouldn't be unreferenced until this object is active. For e.g. when this object is an array of
		/// pointers to other objects
		///
		/// <param name="children">Collection of SafeMemoryHandle objects referred to by this object.</param>
		void AddSubReference(IEnumerable<ISafeMemoryHandle> children);

		/// Returns the instance as an <see cref="IntPtr"/>. This is a dangerous call as the value is mutable.
		/// <returns>An <see cref="IntPtr"/> to the internally held memory.</returns>
		IntPtr DangerousGetHandle();

		/// Gets a copy of bytes from the allocated memory block.
		/// <param name="startIndex">The start index.</param>
		/// <param name="count">The number of bytes to retrieve.</param>
		/// <returns>A byte array with the copied bytes.</returns>
		public byte[] GetBytes(int startIndex, int count);

		///
		/// Extracts an array of structures of <typeparamref name="T"/> containing <paramref name="count"/> items. <note type="note">This
		/// call can cause memory exceptions if the pointer does not have sufficient allocated memory to retrieve all the structures.</note>
		///
		/// <typeparam name="T">The type of the structures to retrieve.</typeparam>
		/// <param name="count">The number of structures to retrieve.</param>
		/// <param name="prefixBytes">The number of bytes to skip before reading the structures.</param>
		/// <returns>An array of structures of <typeparamref name="T"/>.</returns>
		T[] ToArray<T>(int count, int prefixBytes = 0);

		///
		/// Extracts an enumeration of structures of <typeparamref name="T"/> containing <paramref name="count"/> items. <note
		/// type="note">This call can cause memory exceptions if the pointer does not have sufficient allocated memory to retrieve all the structures.</note>
		///
		/// <typeparam name="T">The type of the structures to retrieve.</typeparam>
		/// <param name="count">The number of structures to retrieve.</param>
		/// <param name="prefixBytes">The number of bytes to skip before reading the structures.</param>
		/// <returns>An enumeration of structures of <typeparamref name="T"/>.</returns>
		IEnumerable<T> ToEnumerable<T>(int count, int prefixBytes = 0);

		/// Returns a <see cref="System.String"/> that represents this instance.
		/// <param name="len">The length.</param>
		/// <param name="charSet">The character set of the string.</param>
		/// <returns>A <see cref="System.String"/> that represents this instance.</returns>
		string ToString(int len, CharSet charSet = CharSet.Unicode);

		/// Returns a <see cref="System.String"/> that represents this instance.
		/// <param name="len">The length.</param>
		/// <param name="prefixBytes">Number of bytes preceding the string pointer.</param>
		/// <param name="charSet">The character set of the string.</param>
		/// <returns>A <see cref="System.String"/> that represents this instance.</returns>
		string ToString(int len, int prefixBytes, CharSet charSet = CharSet.Unicode);

		///
		/// Gets an enumerated list of strings from a block of unmanaged memory where each string is separated by a single '\0' character
		/// and is terminated by two '\0' characters.
		///
		/// <param name="charSet">The character set of the strings.</param>
		/// <param name="prefixBytes">Number of bytes preceding the array of string pointers.</param>
		/// <returns>Enumeration of strings.</returns>
		IEnumerable<string> ToStringEnum(CharSet charSet = CharSet.Auto, int prefixBytes = 0);

		///
		/// Returns an enumeration of strings from memory where each string is pointed to by a preceding list of pointers of length
		/// <paramref name="count"/>.
		///
		/// <param name="count">The count.</param>
		/// <param name="charSet">The character set of the strings.</param>
		/// <param name="prefixBytes">Number of bytes preceding the array of string pointers.</param>
		/// <returns>An enumerated list of strings.</returns>
		IEnumerable<string> ToStringEnum(int count, CharSet charSet = CharSet.Auto, int prefixBytes = 0);

		///
		/// Marshals data from this block of memory to a newly allocated managed object of the type specified by a generic type parameter.
		///
		/// <typeparam name="T">The type of the object to which the data is to be copied. This must be a structure.</typeparam>
		/// <param name="prefixBytes">Number of bytes preceding the structure.</param>
		/// <returns>A managed object that contains the data that this <see cref="SafeMemoryHandleExt{T}"/> holds.</returns>
		T ToStructure<T>(int prefixBytes = 0);
	}

	/// Interface to capture unmanaged simple (alloc/free) memory methods.
	public interface ISimpleMemoryMethods
	{
		/// Gets a handle to a memory allocation of the specified size.
		/// <param name="size">The size, in bytes, of memory to allocate.</param>
		/// <returns>A memory handle.</returns>
		IntPtr AllocMem(int size);

		/// Frees the memory associated with a handle.
		/// <param name="hMem">A memory handle.</param>
		void FreeMem(IntPtr hMem);

		/// Locks the memory of a specified handle and gets a pointer to it.
		/// <param name="hMem">A memory handle.</param>
		/// <returns>A pointer to the locked memory.</returns>
		IntPtr LockMem(IntPtr hMem);

		/// Unlocks the memory of a specified handle.
		/// <param name="hMem">A memory handle.</param>
		void UnlockMem(IntPtr hMem);
	}

	/// Implementation of <see cref="IMemoryMethods"/> using just the methods from <see cref="ISimpleMemoryMethods"/>.
	/// <seealso cref="Vanara.InteropServices.IMemoryMethods"/>
	public abstract class MemoryMethodsBase : IMemoryMethods
	{
		///
		/// Gets a handle to a memory allocation of the specified size.
		///
		/// <param name="size">The size, in bytes, of memory to allocate.</param>
		/// <returns>
		/// A memory handle.
		/// </returns>
		/// <exception cref="NotImplementedException"></exception>
		public abstract IntPtr AllocMem(int size);

		/// Gets the Ansi <see cref="SecureString"/> allocation method.
		/// <param name="secureString">The secure string.</param>
		/// <returns>A memory handle.</returns>
		public virtual IntPtr AllocSecureStringAnsi(SecureString secureString) => StringHelper.AllocSecureString(secureString, CharSet.Ansi, AllocMem);

		/// Gets the Unicode <see cref="SecureString"/> allocation method.
		/// <param name="secureString">The secure string.</param>
		/// <returns>A memory handle.</returns>
		public virtual IntPtr AllocSecureStringUni(SecureString secureString) => StringHelper.AllocSecureString(secureString, CharSet.Unicode, AllocMem);

		/// Gets the Ansi string allocation method.
		/// <param name="value">The value.</param>
		/// <returns>A memory handle.</returns>
		public virtual IntPtr AllocStringAnsi(string value) => StringHelper.AllocString(value, CharSet.Ansi, AllocMem);

		/// Gets the Unicode string allocation method.
		/// <param name="value">The value.</param>
		/// <returns>A memory handle.</returns>
		public virtual IntPtr AllocStringUni(string value) => StringHelper.AllocString(value, CharSet.Unicode, AllocMem);

		/// Frees the memory associated with a handle.
		/// <param name="hMem">A memory handle.</param>
		public abstract void FreeMem(IntPtr hMem);

		/// Gets the Ansi <see cref="SecureString"/> free method.
		/// <param name="hMem">A memory handle.</param>
		public virtual void FreeSecureStringAnsi(IntPtr hMem) => FreeMem(hMem);

		/// Gets the Unicode <see cref="SecureString"/> free method.
		/// <param name="hMem">A memory handle.</param>
		public virtual void FreeSecureStringUni(IntPtr hMem) => FreeMem(hMem);

		/// Locks the memory of a specified handle and gets a pointer to it.
		/// <param name="hMem">A memory handle.</param>
		/// <returns>A pointer to the locked memory.</returns>
		public virtual IntPtr LockMem(IntPtr hMem) => hMem;

		/// Gets the reallocation method.
		/// <param name="hMem">A memory handle.</param>
		/// <param name="size">The size, in bytes, of memory to allocate.</param>
		/// <returns>A memory handle.</returns>
		public virtual IntPtr ReAllocMem(IntPtr hMem, int size)
		{
			var hNew = AllocMem(size);
			hMem.CopyTo(hNew, size);
			FreeMem(hMem);
			return hNew;
		}

		/// Unlocks the memory of a specified handle.
		/// <param name="hMem">A memory handle.</param>
		public virtual void UnlockMem(IntPtr hMem) { }
	}

	///
	/// Abstract base class for all SafeHandle derivatives that encapsulate handling unmanaged memory. This class assumes read-only memory.
	///
	/// <seealso cref="System.Runtime.InteropServices.SafeHandle"/>
	public abstract class SafeAllocatedMemoryHandleBase : SafeHandle
	{
		/// Initializes a new instance of the <see cref="SafeAllocatedMemoryHandleBase"/> class.
		/// <param name="handle">The handle.</param>
		/// <param name="ownsHandle">if set to <c>true</c> if this class is responsible for freeing the memory on disposal.</param>
		protected SafeAllocatedMemoryHandleBase(IntPtr handle, bool ownsHandle) : base(IntPtr.Zero, ownsHandle) => SetHandle(handle);

#if DEBUG
		/// Dumps memory to byte string.
		[ExcludeFromCodeCoverage]
		public string Dump => Size == 0 ? "" : string.Join(" ", GetBytes(0, Size).Select(b => b.ToString("X2")).ToArray());
#endif

		/// Gets or sets the size in bytes of the allocated memory block.
		/// <value>The size in bytes of the allocated memory block.</value>
		public abstract SizeT Size { get; set; }

		/// Performs an explicit conversion from <see cref="SafeAllocatedMemoryHandleBase"/> to <see cref="byte"/> pointer.
		/// <param name="hMem">The <see cref="SafeAllocatedMemoryHandleBase"/> instance.</param>
		/// <returns>The result of the conversion.</returns>
		public static unsafe explicit operator byte*(SafeAllocatedMemoryHandleBase hMem) => (byte*)hMem.handle;

		/// Performs an explicit conversion from <see cref="SafeAllocatedMemoryHandleBase"/> to <see cref="SafeBuffer"/>.
		/// <param name="hMem">The <see cref="SafeAllocatedMemoryHandleBase"/> instance.</param>
		/// <returns>The result of the conversion.</returns>
		public static explicit operator SafeBuffer(SafeAllocatedMemoryHandleBase hMem) => new SafeBufferImpl(hMem);

		/// Performs an implicit conversion from <see cref="SafeAllocatedMemoryHandleBase"/> to <see cref="System.IntPtr"/>.
		/// <param name="hMem">The <see cref="SafeAllocatedMemoryHandleBase"/> instance.</param>
		/// <returns>The result of the conversion.</returns>
		public static implicit operator IntPtr(SafeAllocatedMemoryHandleBase hMem) => hMem.handle;

#if ALLOWSPAN
		/// Creates a new span over this allocated memory.
		/// <returns>The span representation of the structure.</returns>
		public virtual ReadOnlySpan<T> AsReadOnlySpan<T>(int length) => handle.AsReadOnlySpan<T>(length, 0, Size);

		/// Creates a new span over this allocated memory.
		/// <returns>The span representation of the structure.</returns>
		public virtual Span<T> AsSpan<T>(int length) => handle.AsSpan<T>(length, 0, Size);

		/// Casts this allocated memory to a <c>Span<Byte></c>.
		/// <returns>A span of type <see cref="byte"/>.</returns>
		public virtual Span<byte> AsBytes() => AsSpan<byte>(Size);
#endif

		/// Releases the owned handle without releasing the allocated memory and returns a pointer to the current memory.
		/// <returns>A pointer to the currently allocated memory. The caller now has the responsibility to free this memory.</returns>
		public virtual IntPtr TakeOwnership()
		{
			var h = handle;
			SetHandleAsInvalid();
			handle = IntPtr.Zero;
			Size = 0;
			return h;
		}

		/// Gets a copy of bytes from the allocated memory block.
		/// <param name="startIndex">The start index.</param>
		/// <param name="count">The number of bytes to retrieve.</param>
		/// <returns>A byte array with the copied bytes.</returns>
		public byte[] GetBytes(int startIndex, int count)
		{
			if (startIndex < 0 || startIndex + count > Size) throw new ArgumentOutOfRangeException();
			var ret = new byte[count];
			Marshal.Copy(handle.Offset(startIndex), ret, 0, count);
			return ret;
		}

		private class SafeBufferImpl : SafeBuffer
		{
			public SafeBufferImpl(SafeAllocatedMemoryHandleBase hMem) : base(false) => Initialize((ulong)hMem.Size);

			protected override bool ReleaseHandle() => true;
		}
	}

	/// Abstract base class for all SafeHandle derivatives that encapsulate handling unmanaged memory.
	/// <seealso cref="System.Runtime.InteropServices.SafeHandle"/>
	public abstract class SafeAllocatedMemoryHandle : SafeAllocatedMemoryHandleBase
	{
		/// Initializes a new instance of the <see cref="SafeAllocatedMemoryHandle"/> class.
		/// <param name="handle">The handle.</param>
		/// <param name="ownsHandle">if set to <c>true</c> if this class is responsible for freeing the memory on disposal.</param>
		protected SafeAllocatedMemoryHandle(IntPtr handle, bool ownsHandle) : base(handle, ownsHandle) { }

		/// Fills the allocated memory with a specific byte value.
		/// <param name="value">The byte value.</param>
		public virtual void Fill(byte value) => Fill(value, Size);

		/// Fills the allocated memory with a specific byte value.
		/// <param name="value">The byte value.</param>
		/// <param name="length">The number of bytes in the block of memory to be filled.</param>
		public virtual void Fill(byte value, int length)
		{
			if (length > Size) throw new ArgumentOutOfRangeException(nameof(length));
			handle.FillMemory(value, length);
		}

		/// Zero out all allocated memory.
		public virtual void Zero() => Fill(0, Size);
	}

	/// Abstract base class for all SafeAllocatedMemoryHandle derivatives that apply a specific memory handling routine set.
	/// <typeparam name="TMem">The <see cref="IMemoryMethods"/> implementation.</typeparam>
	public abstract class SafeMemoryHandle<TMem> : SafeAllocatedMemoryHandle where TMem : IMemoryMethods, new()
	{
		/// The <see cref="IMemoryMethods"/> implementation instance.
		protected static readonly TMem mm = new TMem();

		/// The number of bytes currently allocated.
		protected SizeT sz;

		/// Initializes a new instance of the <see cref="SafeMemoryHandle{T}"/> class.
		/// <param name="size">The size of memory to allocate, in bytes.</param>
		/// <exception cref="System.ArgumentOutOfRangeException">size - The value of this argument must be non-negative</exception>
		protected SafeMemoryHandle(SizeT size = default) : base(IntPtr.Zero, true)
		{
			if (size == 0) return;
			InitFromSize(size);
			Zero();
		}

		/// Initializes a new instance of the <see cref="SafeMemoryHandle{T}"/> class.
		/// <param name="handle">The handle.</param>
		/// <param name="size">The size of memory allocated to the handle, in bytes.</param>
		/// <param name="ownsHandle">if set to <c>true</c> if this class is responsible for freeing the memory on disposal.</param>
		protected SafeMemoryHandle(IntPtr handle, SizeT size, bool ownsHandle) : base(handle, ownsHandle) => sz = size;

		///
		/// Allocates from unmanaged memory to represent an array of pointers and marshals the unmanaged pointers (IntPtr) to the native
		/// array equivalent.
		///
		/// <param name="bytes">Array of unmanaged pointers</param>
		/// <returns>SafeHGlobalHandle object to an native (unmanaged) array of pointers</returns>
		protected SafeMemoryHandle(byte[] bytes) : base(IntPtr.Zero, true)
		{
			if ((bytes?.Length ?? 0) == 0) return;
			InitFromSize(bytes.Length);
			Marshal.Copy(bytes, 0, handle, bytes.Length);
		}

		///
		/// Initializes a new instance of the <see cref="SafeMemoryHandle{TMem}"/> class from a <see cref="SafeAllocatedMemoryHandle"/>
		/// instance, copying all the memory.
		///
		/// <param name="source">The source memory block.</param>
		protected SafeMemoryHandle(SafeAllocatedMemoryHandle source) : base(IntPtr.Zero, true)
		{
			if (source is null) return;
			InitFromSize(source.Size);
			((IntPtr)source).CopyTo(handle, source.Size);
		}

		/// When overridden in a derived class, gets a value indicating whether the handle value is invalid.
		public override bool IsInvalid => handle == IntPtr.Zero;

		/// Gets or sets the size in bytes of the allocated memory block.
		/// <value>The size in bytes of the allocated memory block.</value>
		public override SizeT Size
		{
			get => sz;
			set
			{
				if (value == 0)
				{
					ReleaseHandle();
				}
				else
				{
					RuntimeHelpers.PrepareConstrainedRegions();
					handle = IsInvalid ? mm.AllocMem(value) : mm.ReAllocMem(handle, value);
					if (value > sz)
						handle.Offset(sz).FillMemory(0, value - sz);
					sz = value;
				}
			}
		}

		/// When overridden in a derived class, executes the code required to free the handle.
		/// <returns>
		/// true if the handle is released successfully; otherwise, in the event of a catastrophic failure, false. In this case, it
		/// generates a releaseHandleFailed MDA Managed Debugging Assistant.
		/// </returns>
		protected override bool ReleaseHandle()
		{
			mm.FreeMem(handle);
			sz = 0;
			handle = IntPtr.Zero;
			return true;
		}

		private void InitFromSize(SizeT size)
		{
			RuntimeHelpers.PrepareConstrainedRegions();
			SetHandle(mm.AllocMem(sz = size));
		}
	}

	/// A <see cref="SafeHandle"/> for memory allocated via COM.
	/// <seealso cref="System.Runtime.InteropServices.SafeHandle"/>
	public abstract class SafeMemoryHandleExt<TMem> : SafeMemoryHandle<TMem>, ISafeMemoryHandle where TMem : IMemoryMethods, new()
	{
		///
		/// Maintains reference to other SafeMemoryHandleExt objects, the pointer to which are referred to by this object. This is to ensure
		/// that such objects being referred to wouldn't be unreferenced until this object is active.
		///
		private List<ISafeMemoryHandle> references;

		/// Initializes a new instance of the <see cref="SafeMemoryHandleExt{T}"/> class.
		/// <param name="size">The size of memory to allocate, in bytes.</param>
		/// <exception cref="System.ArgumentOutOfRangeException">size - The value of this argument must be non-negative</exception>
		protected SafeMemoryHandleExt(SizeT size) : base(size) { }

		/// Initializes a new instance of the <see cref="SafeMemoryHandleExt{T}"/> class.
		/// <param name="handle">The handle.</param>
		/// <param name="size">The size of memory allocated to the handle, in bytes.</param>
		/// <param name="ownsHandle">if set to <c>true</c> if this class is responsible for freeing the memory on disposal.</param>
		protected SafeMemoryHandleExt(IntPtr handle, SizeT size, bool ownsHandle) : base(handle, size, ownsHandle) { }

		///
		/// Allocates from unmanaged memory to represent an array of pointers and marshals the unmanaged pointers (IntPtr) to the native
		/// array equivalent.
		///
		/// <param name="bytes">Array of unmanaged pointers</param>
		/// <returns>SafeHGlobalHandle object to an native (unmanaged) array of pointers</returns>
		protected SafeMemoryHandleExt(byte[] bytes) : base(bytes) { }

		///
		/// Allocates from unmanaged memory to represent an array of pointers and marshals the unmanaged pointers (IntPtr) to the native
		/// array equivalent.
		///
		/// <param name="values">Array of unmanaged pointers</param>
		/// <returns>SafeMemoryHandleExt object to an native (unmanaged) array of pointers</returns>
		protected SafeMemoryHandleExt(IntPtr[] values) : this(IntPtr.Size * values.Length) => Marshal.Copy(values, 0, handle, values.Length);

		/// Allocates from unmanaged memory to represent a Unicode string (WSTR) and marshal this to a native PWSTR.
		/// <param name="s">The string value.</param>
		/// <param name="charSet">The character set of the string.</param>
		/// <returns>SafeMemoryHandleExt object to an native (unmanaged) string</returns>
		protected SafeMemoryHandleExt(string s, CharSet charSet = CharSet.Unicode) : base(IntPtr.Zero, s.GetByteCount(true, charSet), true)
		{
			RuntimeHelpers.PrepareConstrainedRegions();
			SetHandle(StringHelper.GetCharSize(charSet) == 2 ? mm.AllocStringUni(s) : mm.AllocStringAnsi(s));
		}

		///
		/// Adds reference to other SafeMemoryHandle objects, the pointer to which are referred to by this object. This is to ensure that
		/// such objects being referred to wouldn't be unreferenced until this object is active. For e.g. when this object is an array of
		/// pointers to other objects
		///
		/// <param name="children">Collection of SafeMemoryHandle objects referred to by this object.</param>
		public void AddSubReference(IEnumerable<ISafeMemoryHandle> children)
		{
			if (references == null)
				references = new List<ISafeMemoryHandle>();
			references.AddRange(children);
		}

		///
		/// Extracts an array of structures of <typeparamref name="T"/> containing <paramref name="count"/> items. <note type="note">This
		/// call can cause memory exceptions if the pointer does not have sufficient allocated memory to retrieve all the structures.</note>
		///
		/// <typeparam name="T">The type of the structures to retrieve.</typeparam>
		/// <param name="count">The number of structures to retrieve.</param>
		/// <param name="prefixBytes">The number of bytes to skip before reading the structures.</param>
		/// <returns>An array of structures of <typeparamref name="T"/>.</returns>
		public T[] ToArray<T>(int count, int prefixBytes = 0)
		{
			if (IsInvalid) return null;
			//if (Size < Marshal.SizeOf(typeof(T)) * count + prefixBytes)
			//	throw new InsufficientMemoryException("Requested array is larger than the memory allocated.");
			//if (!typeof(T).IsBlittable()) throw new ArgumentException(@"Structure layout is not sequential or explicit.");
			Debug.Assert(typeof(T).StructLayoutAttribute?.Value == LayoutKind.Sequential);
			return handle.ToArray<T>(count, prefixBytes, sz);
		}

		///
		/// Extracts an enumeration of structures of <typeparamref name="T"/> containing <paramref name="count"/> items. <note
		/// type="note">This call can cause memory exceptions if the pointer does not have sufficient allocated memory to retrieve all the structures.</note>
		///
		/// <typeparam name="T">The type of the structures to retrieve.</typeparam>
		/// <param name="count">The number of structures to retrieve.</param>
		/// <param name="prefixBytes">The number of bytes to skip before reading the structures.</param>
		/// <returns>An enumeration of structures of <typeparamref name="T"/>.</returns>
		public IEnumerable<T> ToEnumerable<T>(int count, int prefixBytes = 0)
		{
			if (IsInvalid) return new T[0];
			//if (Size < Marshal.SizeOf(typeof(T)) * count + prefixBytes)
			//	throw new InsufficientMemoryException("Requested array is larger than the memory allocated.");
			//if (!typeof(T).IsBlittable()) throw new ArgumentException(@"Structure layout is not sequential or explicit.");
			Debug.Assert(typeof(T).StructLayoutAttribute?.Value == LayoutKind.Sequential);
			return handle.ToIEnum<T>(count, prefixBytes, sz);
		}

		/// Returns a <see cref="System.String"/> that represents this instance.
		/// <param name="len">The length.</param>
		/// <param name="charSet">The character set of the string.</param>
		/// <returns>A <see cref="System.String"/> that represents this instance.</returns>
		public string ToString(int len, CharSet charSet = CharSet.Unicode) => ToString(len, 0, charSet);

		/// Returns a <see cref="System.String"/> that represents this instance.
		/// <param name="len">The length.</param>
		/// <param name="prefixBytes">Number of bytes preceding the string pointer.</param>
		/// <param name="charSet">The character set of the string.</param>
		/// <returns>A <see cref="System.String"/> that represents this instance.</returns>
		public string ToString(int len, int prefixBytes, CharSet charSet = CharSet.Unicode)
		{
			var str = StringHelper.GetString(handle.Offset(prefixBytes), charSet, sz == 0 ? long.MaxValue : sz - prefixBytes);
			return len == -1 ? str : str.Substring(0, Math.Min(len, str.Length));
		}

		///
		/// Returns an enumeration of strings from memory where each string is pointed to by a preceding list of pointers of length
		/// <paramref name="count"/>.
		///
		/// <param name="count">The count of expected strings.</param>
		/// <param name="charSet">The character set of the strings.</param>
		/// <param name="prefixBytes">Number of bytes preceding the array of string pointers.</param>
		/// <returns>Enumeration of strings.</returns>
		public IEnumerable<string> ToStringEnum(int count, CharSet charSet = CharSet.Auto, int prefixBytes = 0) => IsInvalid ? new string[0] : handle.ToStringEnum(count, charSet, prefixBytes, sz);

		///
		/// Gets an enumerated list of strings from a block of unmanaged memory where each string is separated by a single '\0' character
		/// and is terminated by two '\0' characters.
		///
		/// <param name="charSet">The character set of the strings.</param>
		/// <param name="prefixBytes">Number of bytes preceding the array of string pointers.</param>
		/// <returns>An enumerated list of strings.</returns>
		public IEnumerable<string> ToStringEnum(CharSet charSet = CharSet.Auto, int prefixBytes = 0) => IsInvalid ? new string[0] : handle.ToStringEnum(charSet, prefixBytes, sz);

		///
		/// Marshals data from this block of memory to a newly allocated managed object of the type specified by a generic type parameter.
		///
		/// <typeparam name="T">The type of the object to which the data is to be copied. This must be a structure.</typeparam>
		/// <param name="prefixBytes">Number of bytes preceding the structure.</param>
		/// <returns>A managed object that contains the data that this <see cref="SafeMemoryHandleExt{T}"/> holds.</returns>
		public T ToStructure<T>(int prefixBytes = 0)
		{
			if (IsInvalid) return default;
			return handle.ToStructure<T>(sz, prefixBytes);
		}

		/// Marshals data from a managed list of specified type to an offset within this allocated memory.
		/// <typeparam name="T">
		/// A type of the enumerated managed object that holds the data to be marshaled. The object must be a structure or an instance of a
		/// formatted class.
		/// </typeparam>
		/// <param name="items">The enumerated list of items to marshal.</param>
		/// <param name="autoExtend">
		/// if set to <c>true</c> automatically extend the allocated memory to the size required to hold <paramref name="items"/>.
		/// </param>
		/// <param name="offset">The number of bytes to skip before writing the first element of <paramref name="items"/>.</param>
		public void Write<T>(IEnumerable<T> items, bool autoExtend = true, int offset = 0)
		{
			if (IsInvalid) throw new MemberAccessException("Safe memory pointer is not valid.");
			if (autoExtend)
			{
				var count = items?.Count() ?? 0;
				if (count == 0) return;
				InteropExtensions.TrueType(typeof(T), out var iSz);
				var reqSz = iSz * count + offset;
				if (sz < reqSz)
					Size = reqSz;
			}
			handle.Write(items, offset, sz);
		}

		/// Writes the specified value to an offset within this allocated memory.
		/// <typeparam name="T">The type of the value to write.</typeparam>
		/// <param name="value">The value to write.</param>
		/// <param name="autoExtend">
		/// if set to <c>true</c> automatically extend the allocated memory to the size required to hold <paramref name="value"/>.
		/// </param>
		/// <param name="offset">The number of bytes to offset from the beginning of this allocated memory before writing.</param>
		public void Write<T>(in T value, bool autoExtend = true, int offset = 0) where T : struct
		{
			if (IsInvalid) throw new MemberAccessException("Safe memory pointer is not valid.");
			if (autoExtend)
			{
				InteropExtensions.TrueType(typeof(T), out var iSz);
				var reqSz = iSz + offset;
				if (sz < reqSz)
					Size = reqSz;
			}
			handle.Write(value, offset, sz);
		}

		/// Writes the specified value to an offset within this allocated memory.
		/// <param name="value">The value to write.</param>
		/// <param name="autoExtend">
		/// if set to <c>true</c> automatically extend the allocated memory to the size required to hold <paramref name="value"/>.
		/// </param>
		/// <param name="offset">The number of bytes to offset from the beginning of this allocated memory before writing.</param>
		public void Write(object value, bool autoExtend = true, int offset = 0)
		{
			if (IsInvalid) throw new MemberAccessException("Safe memory pointer is not valid.");
			if (value is null) return;
			if (autoExtend)
			{
				InteropExtensions.TrueType(value.GetType(), out var iSz);
				var reqSz = iSz + offset;
				if (sz < reqSz)
					Size = reqSz;
			}
			handle.Write(value, offset, sz);
		}

		/// When overridden in a derived class, executes the code required to free the handle.
		/// <returns>
		/// true if the handle is released successfully; otherwise, in the event of a catastrophic failure, false. In this case, it
		/// generates a releaseHandleFailed MDA Managed Debugging Assistant.
		/// </returns>
		protected override bool ReleaseHandle()
		{
			var released = base.ReleaseHandle();
			handle = IntPtr.Zero;
			return released;
		}

#if ALLOWSPAN
		/// Gets a reference to a structure based on this allocated memory.
		/// <returns>A referenced structure.</returns>
		public virtual ref T AsRef<T>() => ref MemoryMarshal.GetReference(AsSpan<T>(1));
#endif
	}
}


text:
<?php namespace Neomerx\Tests\JsonApi\Encoder\Parameters;

use \Mockery;
use \Mockery\MockInterface;
use \Neomerx\JsonApi\Factories\Factory;
use \Neomerx\Tests\JsonApi\BaseTestCase;
use \Neomerx\JsonApi\Parameters\EncodingParameters;
use \Neomerx\JsonApi\Contracts\Schema\ContainerInterface;
use \Neomerx\JsonApi\Contracts\Schema\SchemaProviderInterface;

/**
 * @package Neomerx\Tests\JsonApi
 */
class ParametersAnalyzerTest extends BaseTestCase
{
    /**
     * @var EncodingParameters
     */
    private $parameters;

    /**
     * @var MockInterface
     */
    private $container;

    /**
     * Sets up the fixture.
     */
    protected function setUp()
    {
        parent::setUp();

        $this->parameters = new EncodingParameters(
            $paths = ['some.path'],
            $fieldsets = ['type' => ['field1', 'field2']]
        );

        $this->container = Mockery::mock(ContainerInterface::class);
    }

    /**
     * Test isPathIncluded when include path are specified.
     */
    public function testIsPathIncludedForSpecifiedIncludePaths()
    {
        /** @var ContainerInterface $container */
        $container = $this->container;
        $analyzer = (new Factory())->createParametersAnalyzer($this->parameters, $container);

        $type = 'type';

        $this->assertTrue($analyzer->isPathIncluded('some.path', $type));
        $this->assertTrue($analyzer->isPathIncluded('some', $type));
        $this->assertFalse($analyzer->isPathIncluded('some.path.plus', $type));
        $this->assertFalse($analyzer->isPathIncluded('completely.different', $type));
    }

    /**
     * Test isPathIncluded when include path are not specified.
     */
    public function testIsPathIncludedForNotSpecifiedIncludePaths()
    {
        /** @var ContainerInterface $container */
        $container = $this->container;
        $analyzer = (new Factory())->createParametersAnalyzer(new EncodingParameters(), $container);

        $type = 'type';

        $schema1 = Mockery::mock(SchemaProviderInterface::class);
        $schema2 = Mockery::mock(SchemaProviderInterface::class);

        /** @noinspection PhpMethodParametersCountMismatchInspection */
        $this->container->shouldReceive('getSchemaByResourceType')->zeroOrMoreTimes()->with($type)->andReturn($schema1);
        /** @noinspection PhpMethodParametersCountMismatchInspection */
        $schema1->shouldReceive('getIncludePaths')->zeroOrMoreTimes()->withNoArgs()->andReturn(['some.path']);

        $this->assertTrue($analyzer->isPathIncluded('some.path', $type));
        $this->assertTrue($analyzer->isPathIncluded('some', $type));
        $this->assertFalse($analyzer->isPathIncluded('some.path.plus', $type));
        $this->assertFalse($analyzer->isPathIncluded('completely.different', $type));

        $type = 'some-other-type';

        /** @noinspection PhpMethodParametersCountMismatchInspection */
        $this->container->shouldReceive('getSchemaByResourceType')->zeroOrMoreTimes()->with($type)->andReturn($schema2);

        /** @noinspection PhpMethodParametersCountMismatchInspection */
        $schema2->shouldReceive('getIncludePaths')->zeroOrMoreTimes()->withNoArgs()->andReturn(['other.path']);

        $this->assertFalse($analyzer->isPathIncluded('some.path', $type));
    }

    /**
     * Test get relationships to be included for input path.
     */
    public function testGetIncludeRelationships()
    {
        $type = 'some-type';

        /** @var ContainerInterface $container */
        $container = $this->container;
        $analyzer = (new Factory())->createParametersAnalyzer(new EncodingParameters([
            'some',
            'some.path',
            'some.path.deeper',
            'some.another.path',
            'some.another.even.deeper',
        ]), $container);

        $getRels = function ($path) use ($analyzer, $type) {
            return $analyzer->getIncludeRelationships($path, $type);
        };

        $this->assertEquals(['some' => 'some'], $getRels(null));
        $this->assertEquals(['some' => 'some'], $getRels(''));
        $this->assertEquals(['path' => 'path', 'another' => 'another'], $getRels('some'));
        $this->assertEquals(['deeper' => 'deeper'], $getRels('some.path'));
        $this->assertEquals(['path' => 'path', 'even' => 'even'], $getRels('some.another'));
    }
}


text:
using System.Diagnostics.CodeAnalysis;

//**************************************************************************************************************************
// Bug ID: 1061939
// Developer: IgorBel
// Reason: In trhis particulart cases we are calling the slow Enum.IsDefined function in the following cases on the Fikle Open transaction
// which is inherently slow as a IO operation, or container add part transaction, which is also slow as it will result in IO
// We do not believe that switching this checks to afaster versions will be detectable by any reasonable perf tests.
//***************************************************************************************************************************
[module: SuppressMessage("Microsoft.Performance", "CA1803:AvoidCostlyCallsWherePossible", Scope="member", Target="MS.Internal.IO.Zip.ZipArchive.ValidateModeAccessShareStreaming(System.IO.Stream,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Boolean):System.Void")]
[module: SuppressMessage("Microsoft.Performance", "CA1803:AvoidCostlyCallsWherePossible", Scope="member", Target="MS.Internal.IO.Zip.ZipArchive.AddFile(System.String,MS.Internal.IO.Zip.CompressionMethodEnum,MS.Internal.IO.Zip.DeflateOptionEnum):MS.Internal.IO.Zip.ZipFileInfo")]

//***************************************************************************************************************************
// Proposed Suppressions from 3.0 RTM
//***************************************************************************************************************************

//**************************************************************************************************************************
// Bug ID: 1843710
// Developer: KenLai
// Reason: these only appear on CHK builds
//**************************************************************************************************************************
#if DEBUG
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Internal.Security.RightsManagement.ClientSession.GetGrantsFromBoundUseLicense(MS.Internal.Security.RightsManagement.SafeRightsManagementHandle,System.Security.RightsManagement.ContentUser):System.Collections.Generic.List`1<System.Security.RightsManagement.ContentGrant>")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Internal.Security.RightsManagement.ClientSession.GetGrantsFromBoundUseLicenseList(System.Collections.Generic.List`1<MS.Internal.Security.RightsManagement.SafeRightsManagementHandle>,System.Security.RightsManagement.ContentUser):System.Collections.Generic.List`1<System.Security.RightsManagement.ContentGrant>")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Internal.Security.RightsManagement.ClientSession.GetBoundLicenseStringAttribute(MS.Internal.Security.RightsManagement.SafeRightsManagementHandle,System.String,System.UInt32):System.String")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Internal.Security.RightsManagement.ClientSession.GetBoundLicenseDateTimeAttribute(MS.Internal.Security.RightsManagement.SafeRightsManagementHandle,System.String,System.UInt32,System.DateTime):System.DateTime")]
#endif

//**************************************************************************************************************************
// Bug ID: 1074773
// Developer: chandras
// Reason: This SRID is defined in shared\resources\exceptionstringtable.txt and used by other DLLs, so putting a suppression for this in WindowsBase.dll
//***************************************************************************************************************************
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.SRID.get_CollectionIsFixedSize():System.Windows.SRID")]

//**************************************************************************************************************************
// Bug ID: 1117678
// Developer: chandras
// Reason: This SRID is defined in shared\resources\exceptionstringtable.txt and used by other DLLs, so putting a suppression for this in WindowsBase.dll
//***************************************************************************************************************************
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.SRID.get_CollectionNumberOfElementsMustBeGreaterThanZero():System.Windows.SRID")]

//**************************************************************************************************************************
// Bug ID: 1099475
// Developer: chandras
// Reason: This SRID is defined in shared\resources\exceptionstringtable.txt and used by other DLLs, so putting a suppression for this in WindowsBase.dll
//***************************************************************************************************************************
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.SRID.get_Animation_KeyTime_InvalidWhenDurationIsForever():System.Windows.SRID")]

//**************************************************************************************************************************
// Bug ID: 1100749
// Developer: cedricd
// Reason: InsertionMap is in the Shared directory and is thus copied in every assembly. Others use it.
//***************************************************************************************************************************
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Utility.InsertionSortMap.Sort():System.Void")]

//**************************************************************************************************************************
// Bug ID: 1131122
// Developer: patricsw
// Reason: All of these methods are part of a generic data structure object. Although the methods are not currently
//         called it would seem silly to delete them so that in the future somebody would have to reimplement them
//         if they needed them (i.e. it sorts of like implementing a list with GetFirst()/GetLast() and deleting
//         GetLast() because it hasn't been used yet..for code maintenance it makes sense (IMHO) to leave these in).
//***************************************************************************************************************************
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Utility.ItemStructList`1.Add(System.Int32):System.Int32")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Utility.ItemStructList`1.AppendTo(MS.Utility.ItemStructList`1<T>&):System.Void")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Utility.ItemStructList`1.Clear():System.Void")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Utility.ItemStructList`1.Contains(T):System.Boolean")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Utility.ItemStructList`1.EnsureIndex(System.Int32):System.Void")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Utility.ItemStructList`1.IsValidIndex(System.Int32):System.Boolean")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Utility.ItemStructList`1.Sort():System.Void")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="MS.Utility.ItemStructList`1.ToArray():T[]")]

// Bug ID: 1154712
// Developer: cedricd
// Reason: InsertionSortMap, FrugalMap, and FrugalList are helper data structures that are compiled into PC, PF, and WB.  Even though
// WindowsBase isn't using this, one of the others may be, so it would be an error to remove it.  At the very least these
// should be excluded for maintainability reasons.
//***************************************************************************************************************************
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="type", Target="MS.Utility.InsertionSortMap")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="type", Target="MS.Utility.FrugalMap")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="type", Target="MS.Utility.FrugalStructList`1")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="type", Target="MS.Utility.FrugalObjectList`1")]

// Bug ID: 1653880
// Developer: SamBent
// Reason:  Dispose is not always able to remove the subclass from the WndProc chain.
//          The Finalizer uses a much more aggressive approach that always removes
//          the subclass, perhaps at the expense of other subclasses.  Suppressing
//          the finalizer might skip this step during shutdown, which could lead to
//          a crash later on if the managed WndProc is called after the CLR has shut down.
[module: SuppressMessage("Microsoft.Performance", "CA1816:DisposeMethodsShouldCallSuppressFinalize", Scope="member", Target="MS.Win32.HwndSubclass.Dispose():System.Void")]

//***************************************************************************************************************************
// New Suppressions since 3.0 RTM
//***************************************************************************************************************************

// Not removing resource strings for SP1
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.SRID.get_SortDescriptionPropertyNameCannotBeEmpty():System.Windows.SRID")]

//***************************************************************************************************************************
// New Suppressions since 4.0 RTM
//***************************************************************************************************************************

//***************************************************************************************************************************
// Source code is not owned by WPF.  This method may be used by others, so suppress the warning.
//***************************************************************************************************************************
[module: SuppressMessage("Microsoft.Performance","CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.IO.Compression.ZLibNative+NativeZLibDLLStub+SafeLibraryHandle.#.ctor(System.IntPtr)")]