/*
 *******************************************************************************
 * Copyright (C) 1996-2000, International Business Machines Corporation and    *
 * others. All Rights Reserved.                                                *
 *******************************************************************************
 *
 * $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/util/resources/Attic/HolidayBundle_iw.java,v $ 
 * $Date: 2000/03/10 04:18:04 $ 
 * $Revision: 1.2 $
 *
 *****************************************************************************************
 */

package com.ibm.util.resources;

import com.ibm.util.*;
import java.util.ListResourceBundle;

public class HolidayBundle_iw extends ListResourceBundle {

    static private final Object[][] fContents = {
        {   "", ""  },      // Can't be empty!
    };

    public synchronized Object[][] getContents() { return fContents; };

};
