text:
using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace KillrVideo.Comments {

  /// Holder for reflection information generated from comments/comments_service.proto
  public static partial class CommentsServiceReflection {

    #region Descriptor
    /// File descriptor for comments/comments_service.proto
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static CommentsServiceReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "Ch9jb21tZW50cy9jb21tZW50c19zZXJ2aWNlLnByb3RvEhNraWxscnZpZGVv",
            "LmNvbW1lbnRzGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGhlj",
            "b21tb24vY29tbW9uX3R5cGVzLnByb3RvIq4BChVDb21tZW50T25WaWRlb1Jl",
            "cXVlc3QSKQoIdmlkZW9faWQYASABKAsyFy5raWxscnZpZGVvLmNvbW1vbi5V",
            "dWlkEigKB3VzZXJfaWQYAiABKAsyFy5raWxscnZpZGVvLmNvbW1vbi5VdWlk",
            "Ei8KCmNvbW1lbnRfaWQYAyABKAsyGy5raWxscnZpZGVvLmNvbW1vbi5UaW1l",
            "VXVpZBIPCgdjb21tZW50GAQgASgJIhgKFkNvbW1lbnRPblZpZGVvUmVzcG9u",
            "c2UipQEKFkdldFVzZXJDb21tZW50c1JlcXVlc3QSKAoHdXNlcl9pZBgBIAEo",
            "CzIXLmtpbGxydmlkZW8uY29tbW9uLlV1aWQSEQoJcGFnZV9zaXplGAIgASgF",
            "EjgKE3N0YXJ0aW5nX2NvbW1lbnRfaWQYAyABKAsyGy5raWxscnZpZGVvLmNv",
            "bW1vbi5UaW1lVXVpZBIUCgxwYWdpbmdfc3RhdGUYECABKAkijQEKF0dldFVz",
            "ZXJDb21tZW50c1Jlc3BvbnNlEigKB3VzZXJfaWQYASABKAsyFy5raWxscnZp",
            "ZGVvLmNvbW1vbi5VdWlkEjIKCGNvbW1lbnRzGAIgAygLMiAua2lsbHJ2aWRl",
            "by5jb21tZW50cy5Vc2VyQ29tbWVudBIUCgxwYWdpbmdfc3RhdGUYAyABKAki",
            "sQEKC1VzZXJDb21tZW50Ei8KCmNvbW1lbnRfaWQYASABKAsyGy5raWxscnZp",
            "ZGVvLmNvbW1vbi5UaW1lVXVpZBIpCgh2aWRlb19pZBgCIAEoCzIXLmtpbGxy",
            "dmlkZW8uY29tbW9uLlV1aWQSDwoHY29tbWVudBgDIAEoCRI1ChFjb21tZW50",
            "X3RpbWVzdGFtcBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi",
            "pwEKF0dldFZpZGVvQ29tbWVudHNSZXF1ZXN0EikKCHZpZGVvX2lkGAEgASgL",
            "Mhcua2lsbHJ2aWRlby5jb21tb24uVXVpZBIRCglwYWdlX3NpemUYAiABKAUS",
            "OAoTc3RhcnRpbmdfY29tbWVudF9pZBgDIAEoCzIbLmtpbGxydmlkZW8uY29t",
            "bW9uLlRpbWVVdWlkEhQKDHBhZ2luZ19zdGF0ZRgQIAEoCSKQAQoYR2V0Vmlk",
            "ZW9Db21tZW50c1Jlc3BvbnNlEikKCHZpZGVvX2lkGAEgASgLMhcua2lsbHJ2",
            "aWRlby5jb21tb24uVXVpZBIzCghjb21tZW50cxgCIAMoCzIhLmtpbGxydmlk",
            "ZW8uY29tbWVudHMuVmlkZW9Db21tZW50EhQKDHBhZ2luZ19zdGF0ZRgDIAEo",
            "CSKxAQoMVmlkZW9Db21tZW50Ei8KCmNvbW1lbnRfaWQYASABKAsyGy5raWxs",
            "cnZpZGVvLmNvbW1vbi5UaW1lVXVpZBIoCgd1c2VyX2lkGAIgASgLMhcua2ls",
            "bHJ2aWRlby5jb21tb24uVXVpZBIPCgdjb21tZW50GAMgASgJEjUKEWNvbW1l",
            "bnRfdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFt",
            "cDLbAgoPQ29tbWVudHNTZXJ2aWNlEmkKDkNvbW1lbnRPblZpZGVvEioua2ls",
            "bHJ2aWRlby5jb21tZW50cy5Db21tZW50T25WaWRlb1JlcXVlc3QaKy5raWxs",
            "cnZpZGVvLmNvbW1lbnRzLkNvbW1lbnRPblZpZGVvUmVzcG9uc2USbAoPR2V0",
            "VXNlckNvbW1lbnRzEisua2lsbHJ2aWRlby5jb21tZW50cy5HZXRVc2VyQ29t",
            "bWVudHNSZXF1ZXN0Giwua2lsbHJ2aWRlby5jb21tZW50cy5HZXRVc2VyQ29t",
            "bWVudHNSZXNwb25zZRJvChBHZXRWaWRlb0NvbW1lbnRzEiwua2lsbHJ2aWRl",
            "by5jb21tZW50cy5HZXRWaWRlb0NvbW1lbnRzUmVxdWVzdBotLmtpbGxydmlk",
            "ZW8uY29tbWVudHMuR2V0VmlkZW9Db21tZW50c1Jlc3BvbnNlQhaqAhNLaWxs",
            "clZpZGVvLkNvbW1lbnRzYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::KillrVideo.Protobuf.CommonTypesReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::KillrVideo.Comments.CommentOnVideoRequest), global::KillrVideo.Comments.CommentOnVideoRequest.Parser, new[]{ "VideoId", "UserId", "CommentId", "Comment" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::KillrVideo.Comments.CommentOnVideoResponse), global::KillrVideo.Comments.CommentOnVideoResponse.Parser, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::KillrVideo.Comments.GetUserCommentsRequest), global::KillrVideo.Comments.GetUserCommentsRequest.Parser, new[]{ "UserId", "PageSize", "StartingCommentId", "PagingState" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::KillrVideo.Comments.GetUserCommentsResponse), global::KillrVideo.Comments.GetUserCommentsResponse.Parser, new[]{ "UserId", "Comments", "PagingState" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::KillrVideo.Comments.UserComment), global::KillrVideo.Comments.UserComment.Parser, new[]{ "CommentId", "VideoId", "Comment", "CommentTimestamp" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::KillrVideo.Comments.GetVideoCommentsRequest), global::KillrVideo.Comments.GetVideoCommentsRequest.Parser, new[]{ "VideoId", "PageSize", "StartingCommentId", "PagingState" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::KillrVideo.Comments.GetVideoCommentsResponse), global::KillrVideo.Comments.GetVideoCommentsResponse.Parser, new[]{ "VideoId", "Comments", "PagingState" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::KillrVideo.Comments.VideoComment), global::KillrVideo.Comments.VideoComment.Parser, new[]{ "CommentId", "UserId", "Comment", "CommentTimestamp" }, null, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  ///
  ///  Add a comment to a video
  ///
  public sealed partial class CommentOnVideoRequest : pb::IMessage<CommentOnVideoRequest> {
    private static readonly pb::MessageParser<CommentOnVideoRequest> _parser = new pb::MessageParser<CommentOnVideoRequest>(() => new CommentOnVideoRequest());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<CommentOnVideoRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::KillrVideo.Comments.CommentsServiceReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CommentOnVideoRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CommentOnVideoRequest(CommentOnVideoRequest other) : this() {
      VideoId = other.videoId_ != null ? other.VideoId.Clone() : null;
      UserId = other.userId_ != null ? other.UserId.Clone() : null;
      CommentId = other.commentId_ != null ? other.CommentId.Clone() : null;
      comment_ = other.comment_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CommentOnVideoRequest Clone() {
      return new CommentOnVideoRequest(this);
    }

    /// Field number for the "video_id" field.
    public const int VideoIdFieldNumber = 1;
    private global::KillrVideo.Protobuf.Uuid videoId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.Uuid VideoId {
      get { return videoId_; }
      set {
        videoId_ = value;
      }
    }

    /// Field number for the "user_id" field.
    public const int UserIdFieldNumber = 2;
    private global::KillrVideo.Protobuf.Uuid userId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.Uuid UserId {
      get { return userId_; }
      set {
        userId_ = value;
      }
    }

    /// Field number for the "comment_id" field.
    public const int CommentIdFieldNumber = 3;
    private global::KillrVideo.Protobuf.TimeUuid commentId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.TimeUuid CommentId {
      get { return commentId_; }
      set {
        commentId_ = value;
      }
    }

    /// Field number for the "comment" field.
    public const int CommentFieldNumber = 4;
    private string comment_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Comment {
      get { return comment_; }
      set {
        comment_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as CommentOnVideoRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(CommentOnVideoRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(VideoId, other.VideoId)) return false;
      if (!object.Equals(UserId, other.UserId)) return false;
      if (!object.Equals(CommentId, other.CommentId)) return false;
      if (Comment != other.Comment) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (videoId_ != null) hash ^= VideoId.GetHashCode();
      if (userId_ != null) hash ^= UserId.GetHashCode();
      if (commentId_ != null) hash ^= CommentId.GetHashCode();
      if (Comment.Length != 0) hash ^= Comment.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (videoId_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(VideoId);
      }
      if (userId_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(UserId);
      }
      if (commentId_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(CommentId);
      }
      if (Comment.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Comment);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (videoId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(VideoId);
      }
      if (userId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(UserId);
      }
      if (commentId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CommentId);
      }
      if (Comment.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Comment);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(CommentOnVideoRequest other) {
      if (other == null) {
        return;
      }
      if (other.videoId_ != null) {
        if (videoId_ == null) {
          videoId_ = new global::KillrVideo.Protobuf.Uuid();
        }
        VideoId.MergeFrom(other.VideoId);
      }
      if (other.userId_ != null) {
        if (userId_ == null) {
          userId_ = new global::KillrVideo.Protobuf.Uuid();
        }
        UserId.MergeFrom(other.UserId);
      }
      if (other.commentId_ != null) {
        if (commentId_ == null) {
          commentId_ = new global::KillrVideo.Protobuf.TimeUuid();
        }
        CommentId.MergeFrom(other.CommentId);
      }
      if (other.Comment.Length != 0) {
        Comment = other.Comment;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (videoId_ == null) {
              videoId_ = new global::KillrVideo.Protobuf.Uuid();
            }
            input.ReadMessage(videoId_);
            break;
          }
          case 18: {
            if (userId_ == null) {
              userId_ = new global::KillrVideo.Protobuf.Uuid();
            }
            input.ReadMessage(userId_);
            break;
          }
          case 26: {
            if (commentId_ == null) {
              commentId_ = new global::KillrVideo.Protobuf.TimeUuid();
            }
            input.ReadMessage(commentId_);
            break;
          }
          case 34: {
            Comment = input.ReadString();
            break;
          }
        }
      }
    }

  }

  ///
  ///  Response to adding a comment to a video
  ///
  public sealed partial class CommentOnVideoResponse : pb::IMessage<CommentOnVideoResponse> {
    private static readonly pb::MessageParser<CommentOnVideoResponse> _parser = new pb::MessageParser<CommentOnVideoResponse>(() => new CommentOnVideoResponse());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<CommentOnVideoResponse> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::KillrVideo.Comments.CommentsServiceReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CommentOnVideoResponse() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CommentOnVideoResponse(CommentOnVideoResponse other) : this() {
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public CommentOnVideoResponse Clone() {
      return new CommentOnVideoResponse(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as CommentOnVideoResponse);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(CommentOnVideoResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(CommentOnVideoResponse other) {
      if (other == null) {
        return;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
        }
      }
    }

  }

  ///
  ///  Get a page of comments made by a specific user
  ///
  public sealed partial class GetUserCommentsRequest : pb::IMessage<GetUserCommentsRequest> {
    private static readonly pb::MessageParser<GetUserCommentsRequest> _parser = new pb::MessageParser<GetUserCommentsRequest>(() => new GetUserCommentsRequest());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GetUserCommentsRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::KillrVideo.Comments.CommentsServiceReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetUserCommentsRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetUserCommentsRequest(GetUserCommentsRequest other) : this() {
      UserId = other.userId_ != null ? other.UserId.Clone() : null;
      pageSize_ = other.pageSize_;
      StartingCommentId = other.startingCommentId_ != null ? other.StartingCommentId.Clone() : null;
      pagingState_ = other.pagingState_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetUserCommentsRequest Clone() {
      return new GetUserCommentsRequest(this);
    }

    /// Field number for the "user_id" field.
    public const int UserIdFieldNumber = 1;
    private global::KillrVideo.Protobuf.Uuid userId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.Uuid UserId {
      get { return userId_; }
      set {
        userId_ = value;
      }
    }

    /// Field number for the "page_size" field.
    public const int PageSizeFieldNumber = 2;
    private int pageSize_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int PageSize {
      get { return pageSize_; }
      set {
        pageSize_ = value;
      }
    }

    /// Field number for the "starting_comment_id" field.
    public const int StartingCommentIdFieldNumber = 3;
    private global::KillrVideo.Protobuf.TimeUuid startingCommentId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.TimeUuid StartingCommentId {
      get { return startingCommentId_; }
      set {
        startingCommentId_ = value;
      }
    }

    /// Field number for the "paging_state" field.
    public const int PagingStateFieldNumber = 16;
    private string pagingState_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string PagingState {
      get { return pagingState_; }
      set {
        pagingState_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GetUserCommentsRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GetUserCommentsRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(UserId, other.UserId)) return false;
      if (PageSize != other.PageSize) return false;
      if (!object.Equals(StartingCommentId, other.StartingCommentId)) return false;
      if (PagingState != other.PagingState) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (userId_ != null) hash ^= UserId.GetHashCode();
      if (PageSize != 0) hash ^= PageSize.GetHashCode();
      if (startingCommentId_ != null) hash ^= StartingCommentId.GetHashCode();
      if (PagingState.Length != 0) hash ^= PagingState.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (userId_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(UserId);
      }
      if (PageSize != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(PageSize);
      }
      if (startingCommentId_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(StartingCommentId);
      }
      if (PagingState.Length != 0) {
        output.WriteRawTag(130, 1);
        output.WriteString(PagingState);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (userId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(UserId);
      }
      if (PageSize != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(PageSize);
      }
      if (startingCommentId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartingCommentId);
      }
      if (PagingState.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(PagingState);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GetUserCommentsRequest other) {
      if (other == null) {
        return;
      }
      if (other.userId_ != null) {
        if (userId_ == null) {
          userId_ = new global::KillrVideo.Protobuf.Uuid();
        }
        UserId.MergeFrom(other.UserId);
      }
      if (other.PageSize != 0) {
        PageSize = other.PageSize;
      }
      if (other.startingCommentId_ != null) {
        if (startingCommentId_ == null) {
          startingCommentId_ = new global::KillrVideo.Protobuf.TimeUuid();
        }
        StartingCommentId.MergeFrom(other.StartingCommentId);
      }
      if (other.PagingState.Length != 0) {
        PagingState = other.PagingState;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (userId_ == null) {
              userId_ = new global::KillrVideo.Protobuf.Uuid();
            }
            input.ReadMessage(userId_);
            break;
          }
          case 16: {
            PageSize = input.ReadInt32();
            break;
          }
          case 26: {
            if (startingCommentId_ == null) {
              startingCommentId_ = new global::KillrVideo.Protobuf.TimeUuid();
            }
            input.ReadMessage(startingCommentId_);
            break;
          }
          case 130: {
            PagingState = input.ReadString();
            break;
          }
        }
      }
    }

  }

  ///
  ///  Response when getting a page of comments made by a user
  ///
  public sealed partial class GetUserCommentsResponse : pb::IMessage<GetUserCommentsResponse> {
    private static readonly pb::MessageParser<GetUserCommentsResponse> _parser = new pb::MessageParser<GetUserCommentsResponse>(() => new GetUserCommentsResponse());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GetUserCommentsResponse> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::KillrVideo.Comments.CommentsServiceReflection.Descriptor.MessageTypes[3]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetUserCommentsResponse() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetUserCommentsResponse(GetUserCommentsResponse other) : this() {
      UserId = other.userId_ != null ? other.UserId.Clone() : null;
      comments_ = other.comments_.Clone();
      pagingState_ = other.pagingState_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetUserCommentsResponse Clone() {
      return new GetUserCommentsResponse(this);
    }

    /// Field number for the "user_id" field.
    public const int UserIdFieldNumber = 1;
    private global::KillrVideo.Protobuf.Uuid userId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.Uuid UserId {
      get { return userId_; }
      set {
        userId_ = value;
      }
    }

    /// Field number for the "comments" field.
    public const int CommentsFieldNumber = 2;
    private static readonly pb::FieldCodec<global::KillrVideo.Comments.UserComment> _repeated_comments_codec
        = pb::FieldCodec.ForMessage(18, global::KillrVideo.Comments.UserComment.Parser);
    private readonly pbc::RepeatedField<global::KillrVideo.Comments.UserComment> comments_ = new pbc::RepeatedField<global::KillrVideo.Comments.UserComment>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::KillrVideo.Comments.UserComment> Comments {
      get { return comments_; }
    }

    /// Field number for the "paging_state" field.
    public const int PagingStateFieldNumber = 3;
    private string pagingState_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string PagingState {
      get { return pagingState_; }
      set {
        pagingState_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GetUserCommentsResponse);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GetUserCommentsResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(UserId, other.UserId)) return false;
      if(!comments_.Equals(other.comments_)) return false;
      if (PagingState != other.PagingState) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (userId_ != null) hash ^= UserId.GetHashCode();
      hash ^= comments_.GetHashCode();
      if (PagingState.Length != 0) hash ^= PagingState.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (userId_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(UserId);
      }
      comments_.WriteTo(output, _repeated_comments_codec);
      if (PagingState.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(PagingState);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (userId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(UserId);
      }
      size += comments_.CalculateSize(_repeated_comments_codec);
      if (PagingState.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PagingState);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GetUserCommentsResponse other) {
      if (other == null) {
        return;
      }
      if (other.userId_ != null) {
        if (userId_ == null) {
          userId_ = new global::KillrVideo.Protobuf.Uuid();
        }
        UserId.MergeFrom(other.UserId);
      }
      comments_.Add(other.comments_);
      if (other.PagingState.Length != 0) {
        PagingState = other.PagingState;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (userId_ == null) {
              userId_ = new global::KillrVideo.Protobuf.Uuid();
            }
            input.ReadMessage(userId_);
            break;
          }
          case 18: {
            comments_.AddEntriesFrom(input, _repeated_comments_codec);
            break;
          }
          case 26: {
            PagingState = input.ReadString();
            break;
          }
        }
      }
    }

  }

  ///
  ///  A comment made by a user
  ///
  public sealed partial class UserComment : pb::IMessage<UserComment> {
    private static readonly pb::MessageParser<UserComment> _parser = new pb::MessageParser<UserComment>(() => new UserComment());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<UserComment> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::KillrVideo.Comments.CommentsServiceReflection.Descriptor.MessageTypes[4]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UserComment() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UserComment(UserComment other) : this() {
      CommentId = other.commentId_ != null ? other.CommentId.Clone() : null;
      VideoId = other.videoId_ != null ? other.VideoId.Clone() : null;
      comment_ = other.comment_;
      CommentTimestamp = other.commentTimestamp_ != null ? other.CommentTimestamp.Clone() : null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public UserComment Clone() {
      return new UserComment(this);
    }

    /// Field number for the "comment_id" field.
    public const int CommentIdFieldNumber = 1;
    private global::KillrVideo.Protobuf.TimeUuid commentId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.TimeUuid CommentId {
      get { return commentId_; }
      set {
        commentId_ = value;
      }
    }

    /// Field number for the "video_id" field.
    public const int VideoIdFieldNumber = 2;
    private global::KillrVideo.Protobuf.Uuid videoId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.Uuid VideoId {
      get { return videoId_; }
      set {
        videoId_ = value;
      }
    }

    /// Field number for the "comment" field.
    public const int CommentFieldNumber = 3;
    private string comment_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Comment {
      get { return comment_; }
      set {
        comment_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "comment_timestamp" field.
    public const int CommentTimestampFieldNumber = 4;
    private global::Google.Protobuf.WellKnownTypes.Timestamp commentTimestamp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Google.Protobuf.WellKnownTypes.Timestamp CommentTimestamp {
      get { return commentTimestamp_; }
      set {
        commentTimestamp_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as UserComment);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(UserComment other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(CommentId, other.CommentId)) return false;
      if (!object.Equals(VideoId, other.VideoId)) return false;
      if (Comment != other.Comment) return false;
      if (!object.Equals(CommentTimestamp, other.CommentTimestamp)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (commentId_ != null) hash ^= CommentId.GetHashCode();
      if (videoId_ != null) hash ^= VideoId.GetHashCode();
      if (Comment.Length != 0) hash ^= Comment.GetHashCode();
      if (commentTimestamp_ != null) hash ^= CommentTimestamp.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (commentId_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(CommentId);
      }
      if (videoId_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(VideoId);
      }
      if (Comment.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Comment);
      }
      if (commentTimestamp_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(CommentTimestamp);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (commentId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CommentId);
      }
      if (videoId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(VideoId);
      }
      if (Comment.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Comment);
      }
      if (commentTimestamp_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CommentTimestamp);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(UserComment other) {
      if (other == null) {
        return;
      }
      if (other.commentId_ != null) {
        if (commentId_ == null) {
          commentId_ = new global::KillrVideo.Protobuf.TimeUuid();
        }
        CommentId.MergeFrom(other.CommentId);
      }
      if (other.videoId_ != null) {
        if (videoId_ == null) {
          videoId_ = new global::KillrVideo.Protobuf.Uuid();
        }
        VideoId.MergeFrom(other.VideoId);
      }
      if (other.Comment.Length != 0) {
        Comment = other.Comment;
      }
      if (other.commentTimestamp_ != null) {
        if (commentTimestamp_ == null) {
          commentTimestamp_ = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        CommentTimestamp.MergeFrom(other.CommentTimestamp);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (commentId_ == null) {
              commentId_ = new global::KillrVideo.Protobuf.TimeUuid();
            }
            input.ReadMessage(commentId_);
            break;
          }
          case 18: {
            if (videoId_ == null) {
              videoId_ = new global::KillrVideo.Protobuf.Uuid();
            }
            input.ReadMessage(videoId_);
            break;
          }
          case 26: {
            Comment = input.ReadString();
            break;
          }
          case 34: {
            if (commentTimestamp_ == null) {
              commentTimestamp_ = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(commentTimestamp_);
            break;
          }
        }
      }
    }

  }

  ///
  ///  Request for getting a page of comments on a video
  ///
  public sealed partial class GetVideoCommentsRequest : pb::IMessage<GetVideoCommentsRequest> {
    private static readonly pb::MessageParser<GetVideoCommentsRequest> _parser = new pb::MessageParser<GetVideoCommentsRequest>(() => new GetVideoCommentsRequest());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GetVideoCommentsRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::KillrVideo.Comments.CommentsServiceReflection.Descriptor.MessageTypes[5]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetVideoCommentsRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetVideoCommentsRequest(GetVideoCommentsRequest other) : this() {
      VideoId = other.videoId_ != null ? other.VideoId.Clone() : null;
      pageSize_ = other.pageSize_;
      StartingCommentId = other.startingCommentId_ != null ? other.StartingCommentId.Clone() : null;
      pagingState_ = other.pagingState_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetVideoCommentsRequest Clone() {
      return new GetVideoCommentsRequest(this);
    }

    /// Field number for the "video_id" field.
    public const int VideoIdFieldNumber = 1;
    private global::KillrVideo.Protobuf.Uuid videoId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.Uuid VideoId {
      get { return videoId_; }
      set {
        videoId_ = value;
      }
    }

    /// Field number for the "page_size" field.
    public const int PageSizeFieldNumber = 2;
    private int pageSize_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int PageSize {
      get { return pageSize_; }
      set {
        pageSize_ = value;
      }
    }

    /// Field number for the "starting_comment_id" field.
    public const int StartingCommentIdFieldNumber = 3;
    private global::KillrVideo.Protobuf.TimeUuid startingCommentId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.TimeUuid StartingCommentId {
      get { return startingCommentId_; }
      set {
        startingCommentId_ = value;
      }
    }

    /// Field number for the "paging_state" field.
    public const int PagingStateFieldNumber = 16;
    private string pagingState_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string PagingState {
      get { return pagingState_; }
      set {
        pagingState_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GetVideoCommentsRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GetVideoCommentsRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(VideoId, other.VideoId)) return false;
      if (PageSize != other.PageSize) return false;
      if (!object.Equals(StartingCommentId, other.StartingCommentId)) return false;
      if (PagingState != other.PagingState) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (videoId_ != null) hash ^= VideoId.GetHashCode();
      if (PageSize != 0) hash ^= PageSize.GetHashCode();
      if (startingCommentId_ != null) hash ^= StartingCommentId.GetHashCode();
      if (PagingState.Length != 0) hash ^= PagingState.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (videoId_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(VideoId);
      }
      if (PageSize != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(PageSize);
      }
      if (startingCommentId_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(StartingCommentId);
      }
      if (PagingState.Length != 0) {
        output.WriteRawTag(130, 1);
        output.WriteString(PagingState);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (videoId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(VideoId);
      }
      if (PageSize != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(PageSize);
      }
      if (startingCommentId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartingCommentId);
      }
      if (PagingState.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(PagingState);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GetVideoCommentsRequest other) {
      if (other == null) {
        return;
      }
      if (other.videoId_ != null) {
        if (videoId_ == null) {
          videoId_ = new global::KillrVideo.Protobuf.Uuid();
        }
        VideoId.MergeFrom(other.VideoId);
      }
      if (other.PageSize != 0) {
        PageSize = other.PageSize;
      }
      if (other.startingCommentId_ != null) {
        if (startingCommentId_ == null) {
          startingCommentId_ = new global::KillrVideo.Protobuf.TimeUuid();
        }
        StartingCommentId.MergeFrom(other.StartingCommentId);
      }
      if (other.PagingState.Length != 0) {
        PagingState = other.PagingState;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (videoId_ == null) {
              videoId_ = new global::KillrVideo.Protobuf.Uuid();
            }
            input.ReadMessage(videoId_);
            break;
          }
          case 16: {
            PageSize = input.ReadInt32();
            break;
          }
          case 26: {
            if (startingCommentId_ == null) {
              startingCommentId_ = new global::KillrVideo.Protobuf.TimeUuid();
            }
            input.ReadMessage(startingCommentId_);
            break;
          }
          case 130: {
            PagingState = input.ReadString();
            break;
          }
        }
      }
    }

  }

  ///
  ///  Response when getting a page of comments for a video
  ///
  public sealed partial class GetVideoCommentsResponse : pb::IMessage<GetVideoCommentsResponse> {
    private static readonly pb::MessageParser<GetVideoCommentsResponse> _parser = new pb::MessageParser<GetVideoCommentsResponse>(() => new GetVideoCommentsResponse());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<GetVideoCommentsResponse> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::KillrVideo.Comments.CommentsServiceReflection.Descriptor.MessageTypes[6]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetVideoCommentsResponse() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetVideoCommentsResponse(GetVideoCommentsResponse other) : this() {
      VideoId = other.videoId_ != null ? other.VideoId.Clone() : null;
      comments_ = other.comments_.Clone();
      pagingState_ = other.pagingState_;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public GetVideoCommentsResponse Clone() {
      return new GetVideoCommentsResponse(this);
    }

    /// Field number for the "video_id" field.
    public const int VideoIdFieldNumber = 1;
    private global::KillrVideo.Protobuf.Uuid videoId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.Uuid VideoId {
      get { return videoId_; }
      set {
        videoId_ = value;
      }
    }

    /// Field number for the "comments" field.
    public const int CommentsFieldNumber = 2;
    private static readonly pb::FieldCodec<global::KillrVideo.Comments.VideoComment> _repeated_comments_codec
        = pb::FieldCodec.ForMessage(18, global::KillrVideo.Comments.VideoComment.Parser);
    private readonly pbc::RepeatedField<global::KillrVideo.Comments.VideoComment> comments_ = new pbc::RepeatedField<global::KillrVideo.Comments.VideoComment>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::KillrVideo.Comments.VideoComment> Comments {
      get { return comments_; }
    }

    /// Field number for the "paging_state" field.
    public const int PagingStateFieldNumber = 3;
    private string pagingState_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string PagingState {
      get { return pagingState_; }
      set {
        pagingState_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as GetVideoCommentsResponse);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(GetVideoCommentsResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(VideoId, other.VideoId)) return false;
      if(!comments_.Equals(other.comments_)) return false;
      if (PagingState != other.PagingState) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (videoId_ != null) hash ^= VideoId.GetHashCode();
      hash ^= comments_.GetHashCode();
      if (PagingState.Length != 0) hash ^= PagingState.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (videoId_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(VideoId);
      }
      comments_.WriteTo(output, _repeated_comments_codec);
      if (PagingState.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(PagingState);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (videoId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(VideoId);
      }
      size += comments_.CalculateSize(_repeated_comments_codec);
      if (PagingState.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PagingState);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(GetVideoCommentsResponse other) {
      if (other == null) {
        return;
      }
      if (other.videoId_ != null) {
        if (videoId_ == null) {
          videoId_ = new global::KillrVideo.Protobuf.Uuid();
        }
        VideoId.MergeFrom(other.VideoId);
      }
      comments_.Add(other.comments_);
      if (other.PagingState.Length != 0) {
        PagingState = other.PagingState;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (videoId_ == null) {
              videoId_ = new global::KillrVideo.Protobuf.Uuid();
            }
            input.ReadMessage(videoId_);
            break;
          }
          case 18: {
            comments_.AddEntriesFrom(input, _repeated_comments_codec);
            break;
          }
          case 26: {
            PagingState = input.ReadString();
            break;
          }
        }
      }
    }

  }

  ///
  ///  A comment on a video
  ///
  public sealed partial class VideoComment : pb::IMessage<VideoComment> {
    private static readonly pb::MessageParser<VideoComment> _parser = new pb::MessageParser<VideoComment>(() => new VideoComment());
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<VideoComment> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::KillrVideo.Comments.CommentsServiceReflection.Descriptor.MessageTypes[7]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public VideoComment() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public VideoComment(VideoComment other) : this() {
      CommentId = other.commentId_ != null ? other.CommentId.Clone() : null;
      UserId = other.userId_ != null ? other.UserId.Clone() : null;
      comment_ = other.comment_;
      CommentTimestamp = other.commentTimestamp_ != null ? other.CommentTimestamp.Clone() : null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public VideoComment Clone() {
      return new VideoComment(this);
    }

    /// Field number for the "comment_id" field.
    public const int CommentIdFieldNumber = 1;
    private global::KillrVideo.Protobuf.TimeUuid commentId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.TimeUuid CommentId {
      get { return commentId_; }
      set {
        commentId_ = value;
      }
    }

    /// Field number for the "user_id" field.
    public const int UserIdFieldNumber = 2;
    private global::KillrVideo.Protobuf.Uuid userId_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::KillrVideo.Protobuf.Uuid UserId {
      get { return userId_; }
      set {
        userId_ = value;
      }
    }

    /// Field number for the "comment" field.
    public const int CommentFieldNumber = 3;
    private string comment_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Comment {
      get { return comment_; }
      set {
        comment_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "comment_timestamp" field.
    public const int CommentTimestampFieldNumber = 4;
    private global::Google.Protobuf.WellKnownTypes.Timestamp commentTimestamp_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Google.Protobuf.WellKnownTypes.Timestamp CommentTimestamp {
      get { return commentTimestamp_; }
      set {
        commentTimestamp_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as VideoComment);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(VideoComment other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(CommentId, other.CommentId)) return false;
      if (!object.Equals(UserId, other.UserId)) return false;
      if (Comment != other.Comment) return false;
      if (!object.Equals(CommentTimestamp, other.CommentTimestamp)) return false;
      return true;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (commentId_ != null) hash ^= CommentId.GetHashCode();
      if (userId_ != null) hash ^= UserId.GetHashCode();
      if (Comment.Length != 0) hash ^= Comment.GetHashCode();
      if (commentTimestamp_ != null) hash ^= CommentTimestamp.GetHashCode();
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (commentId_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(CommentId);
      }
      if (userId_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(UserId);
      }
      if (Comment.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Comment);
      }
      if (commentTimestamp_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(CommentTimestamp);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (commentId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CommentId);
      }
      if (userId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(UserId);
      }
      if (Comment.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Comment);
      }
      if (commentTimestamp_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CommentTimestamp);
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(VideoComment other) {
      if (other == null) {
        return;
      }
      if (other.commentId_ != null) {
        if (commentId_ == null) {
          commentId_ = new global::KillrVideo.Protobuf.TimeUuid();
        }
        CommentId.MergeFrom(other.CommentId);
      }
      if (other.userId_ != null) {
        if (userId_ == null) {
          userId_ = new global::KillrVideo.Protobuf.Uuid();
        }
        UserId.MergeFrom(other.UserId);
      }
      if (other.Comment.Length != 0) {
        Comment = other.Comment;
      }
      if (other.commentTimestamp_ != null) {
        if (commentTimestamp_ == null) {
          commentTimestamp_ = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        CommentTimestamp.MergeFrom(other.CommentTimestamp);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (commentId_ == null) {
              commentId_ = new global::KillrVideo.Protobuf.TimeUuid();
            }
            input.ReadMessage(commentId_);
            break;
          }
          case 18: {
            if (userId_ == null) {
              userId_ = new global::KillrVideo.Protobuf.Uuid();
            }
            input.ReadMessage(userId_);
            break;
          }
          case 26: {
            Comment = input.ReadString();
            break;
          }
          case 34: {
            if (commentTimestamp_ == null) {
              commentTimestamp_ = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(commentTimestamp_);
            break;
          }
        }
      }
    }

  }

  #endregion

}

#endregion Designer generated code


text:
<?php

function sfsb_admin_page() {

	global $sfsb_options;
?>

Full Screen Background Image

			<?php
			if ( ! isset( $_REQUEST['updated'] ) )
				$_REQUEST['updated'] = false;
			?>
			<?php if ( false !== $_REQUEST['updated'] ) : ?>

<?php _e( 'Options saved' ); ?>

			<?php endif; ?>
			<form method="post" action="options.php">

				<?php settings_fields( 'fsb_register_settings' ); ?>

Choose Your Image

					<input id="fsb_settings[image]" name="fsb_settings[image]" type="text" class="upload_field" value="<?php echo $sfsb_options['image']; ?>"/>
					<input class="upload_image_button button-secondary" type="button" value="Choose Image"/>
					<?php _e( 'This image will be applied to the background of your website' ); ?>

					<?php if( ! empty( $sfsb_options['image'] ) ) { ?>
						<img src="<?php echo $sfsb_options['image']; ?>" id="fsb_preview_image" style="padding: 3px; border: 1px solid #f0f0f0; max-width: 600px; overflow: hidden;"/>
					<?php } else { ?>
						<img src="<?php echo plugin_dir_url( __FILE__ ) . 'preview.jpg'; ?>" id="fsb_preview_image" style="padding: 3px; border: 1px solid #f0f0f0; max-width: 600px; overflow: hidden;"/>
					<?php } ?>

					<input type="submit" class="button-primary" value="<?php _e( 'Save Options' ); ?>" />

			</form>

<?php
}
function sfsb_init_admin() {
	add_submenu_page( 'themes.php', 'Full Screen Background Image', 'Fullscreen BG Image', 'manage_options', 'full-screen-background', 'sfsb_admin_page' );
}
add_action('admin_menu', 'sfsb_init_admin');

// register the plugin settings
function sfsb_register_settings() {
	register_setting( 'fsb_register_settings', 'fsb_settings' );
}
add_action( 'admin_init', 'sfsb_register_settings' );

redpajama_set_name: RedPajamaGithub


text:
require 'test_helper'

module Tenant
  class DepartmentsControllerTest < ActionController::TestCase
    setup do
      sign_in_as :admin
      @department = departments(:one)
      @department_attributes = @department.attributes.merge!({
        "title" => 'test'
      })
    end

    test "should get index" do
      get :index, :tenant => @account.subdomain
      assert_response :success
      assert_not_nil assigns(:departments)
    end

    test "should get new" do
      get :new, :tenant => @account.subdomain
      assert_response :success
    end

    test "should create department" do
      assert_difference('Department.count') do
        post :create, :tenant => @account.subdomain, :department => @department_attributes
      end

      assert_redirected_to departments_path(:tenant => @account.subdomain)
    end

    test "should get edit" do
      get :edit, :tenant => @account.subdomain, :id => @department.to_param
      assert_response :success
    end

    test "should update department" do
      put :update, :tenant => @account.subdomain, :id => @department.to_param, :department => @department.attributes
      assert_redirected_to departments_path(:tenant => @account.subdomain)
    end

    test "should destroy department" do
      assert_difference('Department.count', -1) do
        delete :destroy, :tenant => @account.subdomain, :id => @department.to_param
      end

      assert_redirected_to departments_path(:tenant => @account.subdomain)
    end
  end
end


text:
require 'pp'

module Example
  class App < Sinatra::Base
    enable :sessions

    set :github_options, {
      :secret    => ENV['GITHUB_CLIENT_SECRET'],
      :client_id => ENV['GITHUB_CLIENT_ID'],
    }

    register Sinatra::Auth::Github

    helpers do
      def repos
        github_request("user/repos")
      end
    end

    get '/' do
      authenticate!
      "Hello There, #{github_user.name}!#{github_user.token}\n#{repos.inspect}"
    end

    get '/orgs/:id' do
      github_public_organization_authenticate!(params['id'])
      "Hello There, #{github_user.name}! You have access to the #{params['id']} organization."
    end

    # the scopes above need to include repo for team access :(
    # get '/teams/:id' do
    #   github_team_authenticate!(params['id'])
    #   "Hello There, #{github_user.name}! You have access to the #{params['id']} team."
    # end

    get '/logout' do
      logout!
      redirect 'https://github.com'
    end
  end
end


text:
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import { Observable } from 'rxjs/Observable';

import { ConfigService } from '../../config/app.config.service';
import { TokenStorageService } from '../auth/token/token-auth';
import { GuidService } from '../guid.service';

@Injectable()
export class AuthHttpService {

    constructor(private http: Http,
        private tokenStorage: TokenStorageService,
        private config: ConfigService,
        private guidService: GuidService) { }

    private createHeaders() {

        let headers = new Headers();
        headers.append('x-requester-id', this.guidService.create());

        return this.tokenStorage
            .loadToken()
            .map(response => {
                headers.append('Authorization', 'Bearer ' + response);
                return headers;
            });
    }

    get(url) {
        return this.createHeaders()
            .mergeMap(response => {
                return this.http.get(this.config.ApiUrl + url, {
                    headers: response
                });
            })
            .map(response => {
                return response;
            })
            .catch(err => Observable.throw(err.json()));
    }

    post(url, data) {
        return this.createHeaders()
            .mergeMap(response => {
                return this.http.post(this.config.ApiUrl + url, data, {
                    headers: response
                });
            })
            .map(response => {
                return response;
            })
            .catch(err => Observable.throw(err.json()));
    }
}


text:
 [![npm version](https://badge.fury.io/js/console.icon.svg)](https://badge.fury.io/js/console.icon)

`console.icon`, the easiest way use simple icons in your browser console. Run in vanilla.js and supported by every modern browsers.

 You can see a simple demo [here](http://codepen.io/ahmetozantekin/pen/qaVKkV?editors=1112).

## Build

```sh
$ bower install console-icon
```

or

```sh
npm install
npm install -g browserify
npm run build
// output: dist/console.icon.js
```

## Preview

##### simple, only icon.
```javascript
// use your iconname of first parameter.
console.icon("beer");
```
output : 🍺

##### more simple, icon and logging
```javascript
// the second parameter as your message
console.icon("beer", "Cheers!");
```
output : 🍺 Cheers!

**goooood. Isn't it?**

## Usage

Simple include js file into your html.

```html
<script src="dist/console.icon.js"></script>
```

## Icons

###### [List of emoji cheat sheet](http://www.webpagefx.com/tools/emoji-cheat-sheet/)

## Contributers

- Supported every emojis anymore. ([Eray Arslan](https://github.com/erayarslan))
- Supported multiple arguments anymore. ([Barış Güler](https://github.com/hwclass))

### License
Copyright (c) 2016 Ahmet Ozan Tekin

The MIT License


text:
package sqlancer.clickhouse.ast.constant;

import java.math.BigInteger;

import com.clickhouse.client.ClickHouseDataType;

import sqlancer.IgnoreMeException;
import sqlancer.clickhouse.ast.ClickHouseConstant;

public class ClickHouseUInt64Constant extends ClickHouseConstant {

    private final BigInteger value;

    public ClickHouseUInt64Constant(BigInteger value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return String.valueOf(value);
    }

    @Override
    public boolean isNull() {
        return false;
    }

    @Override
    public boolean asBooleanNotNull() {
        return value != BigInteger.ZERO;
    }

    @Override
    public ClickHouseDataType getDataType() {
        return ClickHouseDataType.UInt64;
    }

    @Override
    public boolean compareInternal(Object val) {
        return value.compareTo((BigInteger) val) == 0;
    }

    @Override
    public ClickHouseConstant applyLess(ClickHouseConstant right) {
        if (this.getDataType() == right.getDataType()) {
            return this.asInt() < right.asInt() ? ClickHouseCreateConstant.createTrue()
                    : ClickHouseCreateConstant.createFalse();
        }
        throw new IgnoreMeException();
    }

    @Override
    public long asInt() {
        return value.longValueExact();
    }

    @Override
    public Object getValue() {
        return value;
    }

    @Override
    public ClickHouseConstant cast(ClickHouseDataType type) {
        long val = value.longValueExact();
        switch (type) {
        case String:
            return ClickHouseCreateConstant.createStringConstant(this.toString());
        case UInt8:
            return ClickHouseCreateConstant.createUInt8Constant(val);
        case Int8:
            return ClickHouseCreateConstant.createInt8Constant(val);
        case UInt16:
            return ClickHouseCreateConstant.createUInt16Constant(val);
        case Int16:
            return ClickHouseCreateConstant.createInt16Constant(val);
        case UInt32:
            return ClickHouseCreateConstant.createUInt32Constant(val);
        case Int32:
            return ClickHouseCreateConstant.createInt32Constant(val);
        case UInt64:
            return ClickHouseCreateConstant.createUInt64Constant(value);
        case Int64:
            return ClickHouseCreateConstant.createInt64Constant(value);
        case Float32:
            return ClickHouseCreateConstant.createFloat32Constant(value.floatValue());
        case Float64:
            return ClickHouseCreateConstant.createFloat64Constant(value.doubleValue());
        case Nothing:
            return ClickHouseCreateConstant.createNullConstant();
        case Bool:
            return ClickHouseCreateConstant.createBooleanConstant(val != 0);
        case IntervalYear:
        case IntervalQuarter:
        case IntervalMonth:
        case IntervalWeek:
        case IntervalDay:
        case IntervalHour:
        case IntervalMinute:
        case IntervalSecond:
        case Date:
        case Date32:
        case DateTime:
        case DateTime32:
        case DateTime64:
        case Decimal:
        case Decimal32:
        case Decimal64:
        case Decimal128:
        case Decimal256:
        case UUID:
        case Enum:
        case Enum8:
        case Enum16:
        case IPv4:
        case IPv6:
        case FixedString:
        case AggregateFunction:
        case SimpleAggregateFunction:
        case Array:
        case Map:
        case Nested:
        case Tuple:
        case Point:
        case Polygon:
        case MultiPolygon:
        case Ring:
        default:
            throw new AssertionError(type);
        }
    }
}


text:
#import "ObjectModel+Users.h"
#import "User.h"
#import "ObjectModel+Credentials.h"

@implementation ObjectModel (Users)

- (User *)userWithId:(NSNumber *)userId {
    NSPredicate *userIdPredicate = [NSPredicate predicateWithFormat:@"userId = %@", userId];
    return [self fetchEntityNamed:[User entityName] withPredicate:userIdPredicate];
}

- (User *)loggedInUser {
    NSNumber *userId = [self loggedInUserId];
    return [self userWithId:userId];
}

- (void)ensureUserWithIdExists:(NSNumber *)userId {
    User *user = [self userWithId:userId];
    if (!user) {
        user = [User insertInManagedObjectContext:self.managedObjectContext];
        [user setUserId:userId];
    }
}

- (void)deleteLoggedInUser {
    User *user = [self loggedInUser];
    [self deleteObject:user saveAfter:NO];
}

@end