// Path: sdk/src/com/sharethis/loopy/sdk/Logger.java
// public class Logger {
// 
//     static boolean debugEnabled = true;
// 	static final String TAG = "Loopy";
// 
// 	public static void e(Throwable e) {
// 		Log.e(TAG, e.getMessage(), e);
// 	}
// 
//     public static void w(Throwable e) {
//         Log.w(TAG, e.getMessage(), e);
//     }
// 
// 	public static void w(String s) {
// 		Log.w(TAG, s);
// 	}
// 
//     public static void e(String s) {
//         Log.e(TAG, s);
//     }
// 
//     public static boolean isDebugEnabled() {
//         return debugEnabled;
//     }
// 
//     public static void d(String s) {
//         Log.d(TAG, s);
//     }
// 
//     public static void setDebugEnabled(boolean debugEnabled) {
//         Logger.debugEnabled = debugEnabled;
//     }
// }


import com.sharethis.loopy.sdk.Logger;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.Collection;
import java.util.Map;
                JSONArray arrayObject = new JSONArray();
                Collection<?> collection = (Collection<?>) value;
                for (Object o : collection) {
                    // TODO: This is not very robust.  Needs to infer the type
                    arrayObject.put(o.toString());
                }
                object.put(key, arrayObject);
            }
            else {
                object.put(key, value);
            }

            return true;
        }
        else if(defaultValue != null) {
            object.put(key, defaultValue);
            return true;
        }
        return false;
    }

    public static boolean isNull(JSONObject object, String key) {
        return !object.has(key) || object.isNull(key);
    }

    public static String getString(JSONObject object, String key) {
        if(!isNull(object, key)) {
            try {
                return object.getString(key);
            } catch (JSONException e) {
// Path: sdk/src/com/sharethis/loopy/sdk/Logger.java
// public class Logger {
// 
//     static boolean debugEnabled = true;
// 	static final String TAG = "Loopy";
// 
// 	public static void e(Throwable e) {
// 		Log.e(TAG, e.getMessage(), e);
// 	}
// 
//     public static void w(Throwable e) {
//         Log.w(TAG, e.getMessage(), e);
//     }
// 
// 	public static void w(String s) {
// 		Log.w(TAG, s);
// 	}
// 
//     public static void e(String s) {
//         Log.e(TAG, s);
//     }
// 
//     public static boolean isDebugEnabled() {
//         return debugEnabled;
//     }
// 
//     public static void d(String s) {
//         Log.d(TAG, s);
//     }
// 
//     public static void setDebugEnabled(boolean debugEnabled) {
//         Logger.debugEnabled = debugEnabled;
//     }
// }


// Path: sdk/src/com/sharethis/loopy/sdk/util/JSONUtils.java
import com.sharethis.loopy.sdk.Logger;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.Collection;
import java.util.Map;

                JSONArray arrayObject = new JSONArray();
                Collection<?> collection = (Collection<?>) value;
                for (Object o : collection) {
                    // TODO: This is not very robust.  Needs to infer the type
                    arrayObject.put(o.toString());
                }
                object.put(key, arrayObject);
            }
            else {
                object.put(key, value);
            }

            return true;
        }
        else if(defaultValue != null) {
            object.put(key, defaultValue);
            return true;
        }
        return false;
    }

    public static boolean isNull(JSONObject object, String key) {
        return !object.has(key) || object.isNull(key);
    }

    public static String getString(JSONObject object, String key) {
        if(!isNull(object, key)) {
            try {
                return object.getString(key);
            } catch (JSONException e) {
                Logger.e(e);